[РЕШЕНО] Как создать свой удалённый репозиторий?

Вообщем, pacman скачивает битую базу из-за этого ошибка. Скопировал базу с удалёнки вручную в папку - /var/lib/pacman/sync/, если не обновлять (sudo pacman -Sy). то всё ОК. Из-за чего это может быть?

:: Обновление баз данных пакетов...
 core не устарел
 extra                2038,2 KiB  24,0 MiB/s 00:00 [######################] 100%
 community не устарел
 multilib не устарел
 remote-test           868,0   B  0,00   B/s 00:00 [######################] 100%
868,0 - а на сервере - 928

remote-test.db                                 2020-10-28 21:04  928   [unknown item..]
Panda911
загрузка remote-test.db…
debug: curl returned error 0 from transfer
debug: response code: 200
debug: unregistering database 'remote-test'
Проверил сейчас у себя ... и был удивлен - получил то же самое .... хотя насколько помню раньше все было нормально - непонятно
sudo pacman -Syy --debug ... выкладываю концовку
загрузка archlinuxcn.db...
debug: curl returned error 0 from transfer
debug: response code: 200
debug: unregistering database 'local'
debug: unregistering database 'core'
debug: unregistering database 'extra'
debug: unregistering database 'community'
debug: unregistering database 'multilib'
debug: unregistering database 'archlinuxcn'
хотя запуск sudo pacman -Syy идет нормально
Проверил также запуск sudo pacman -Syu --debug - вывод тоже идет нормально.
То ли что изменилось то ли еще что, хрен его знает - главное, что толку от этого вывода маловато, воде бы все нормально, хотя подробно не смотрел - нужно внимательно сравнить с выводом запуска локальной базы ... а лучше запустить sudo pacman -Syu --debug

PS - а вот самая концовка у вывода sudo pacman -Syu --debug тоже такая же, хотя все прошло нормально
debug: unregistering database 'local'
debug: freeing package cache for repository 'local'
debug: unregistering database 'core'
debug: freeing package cache for repository 'core'
debug: unregistering database 'extra'
debug: freeing package cache for repository 'extra'
debug: unregistering database 'community'
debug: freeing package cache for repository 'community'
debug: unregistering database 'multilib'
debug: freeing package cache for repository 'multilib'
debug: unregistering database 'archlinuxcn'
debug: freeing package cache for repository 'archlinuxcn'
И похоже, на первый взгляд, что причина в отсутствии ... repo.db.sig
Из вывода sudo pacman -Syy --debug
debug: "/var/lib/pacman/sync/multilib.db.sig" is not readable: Нет такого файла или каталога
debug: sig path /var/lib/pacman/sync/multilib.db.sig could not be opened
debug: missing optional signature
Хотя повторюсь, на работу это не влияет ...

ls /var/lib/pacman/sync/multilib.db.sig
ls: невозможно получить доступ к '/var/lib/pacman/sync/multilib.db.sig': Нет такого файла или каталога
Ошибки не исчезают с опытом - они просто умнеют
6 How to create your own online Arch Linux repository on github and use it on any arcolinux
Базируется на арчвики.
In Tux We Trust
Panda911
может быть?
А если добавить в конфиг пакмана SigLevel = Never или DatabaseNever
[remote-test]
SigLevel = Never
Server =адрес сервера

И какой загрузчик в пакмане используется , стандартный?
Это довольно просто: вы используете DatabaseOptional в качестве SigLevel для официальных репозиториев. Необязательный означает, что pacman должен попытаться загрузить их, но игнорировать любые ошибки, если они не могут быть загружены. Внутренний загрузчик pacman незаметно игнорирует ошибки (404 в вашем случае) для подписей, но внешние загрузчики этого не делают.

Либо игнорируйте ошибки, либо (не рекомендуется) используйте DatabaseNever в качестве SigLevel.
С сервером все нормально, база (уже отмечал, что это не база, а сам пишу) пакеты видна, … но есть несколько не понятных моментов
Смотрим сначала мой вывод
debug: adding new server URL to database 'extra': http://mirrors.n-ix.net/archlinux/extra/os/x86_64
заходим на приведенный в выводе repo extra и видим это ... то есть видны пакеты repo extra ...
Смотрим вывод Panda911
Panda911
debug: adding new server URL to database 'remote-test': http://asdrf.hostronavt.ru/repo/remote-test/x86_64
и заходим на его приведенный в выводе repo remote-test и видим это … где и видны не понятные моменты, типа [unknown item..] … и вообще, как то странно выглядит все это - наряду с пакетами лежит и remote-test.files и remote-test.db - насколько я понимаю, там должны находится одни пакеты.

EDIT 1 - никогда этого не делал, а потому вопрос: верно я понимаю, что по-существу локальный repo это свое зеркало, которое если его прописать где нужно, то получится стандартная система обновления, ... один нюанс - обновление пакетов на этом зеркале.

EDIT 2 - только сейчас дошел смысл ошибки
Panda911
ошибка: не удалось открыть файл /var/lib/pacman/sync/remote-test.db: Unrecognized archive format
конечно, наличие файлов remote-test.files и remote-test.db в перечне пакетов на сервере и создает появление такой ошибки - как уже писал - ошибка обусловлена библиотекой /usr/lib/libarchive.so.13.4.3, которая используется pacman для работы с упакованными файлами.
Ошибки не исчезают с опытом - они просто умнеют
vasek
там должны находится одни пакеты
И база пакетов
remote-test.db и список файлов remote-test.files
Как например multilib.db archlinuxcn.db.
vs220
И база пакетов
Я считал, что должен быть только список пакетов -- типа зеркало пакетов -- а вот база и список (вообщем метаданные) должны находится на локальном компе (в своей системе) ... выходит был не прав ... теоретически и практически особо этим не интересовался ... и слабо в этом разбираюсь, а значит на этом останавливаюсь и больше не лезу.
Ошибки не исчезают с опытом - они просто умнеют
Panda911
Файл не пустой, это копия файла. Симлинк не работает на сервере
Что за чудо-система?

Ну, проблема ясна. Файл 4к, скачивается 868.
такие дела.
А вот и разгадка:

$ curl http://asdrf.hostronavt.ru/repo/remote-test/x86_64/remote-test.db
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

Бан юзер-агента?
такие дела.
$ curl --user-agent "Mozilla 5.0" http://asdrf.hostronavt.ru/repo/remote-test/x86_64/remote-test.db
<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("6b80f298181247d9ec01b1e116b718c2");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://asdrf.hostronavt.ru/repo/remote-test/x86_64/remote-test.db?i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>
такие дела.
 
Зарегистрироваться или войдите чтобы оставить сообщение.