Ранее я установил aptly репозитории в Ubuntu 14.04 LTS и 16.04 LTS без особых проблем, но, как я недавно повторил попытку 18.04 LTS, что-то не так, и я не могу использовать свой репозиторий. Я полагаю, что может быть некоторая несовместимость с 18.04.
Обратите внимание, что имена хранилищ, серверов и каталогов были запутаны.
Первое, что следует отметить, это то, что опция -batch больше не работает, потому что gpg, по-видимому, теперь требует агента в 18.04:
$ aptly publish repo -passphrase '********' -batch myrepo-unstable public/ubuntu
gpg: WARNING: "--no-use-agent" is an obsolete option - it has no effect
Чтобы подпись работала, мне нужно было настроить файл gpg.conf:
$ cat ~/.gnupg/gpg.conf
pinentry-mode loopback
Затем я могу опубликовать мой репо:
$ aptly publish repo -passphrase '********' myrepo-unstable public/ubuntu
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
gpg: WARNING: "--no-use-agent" is an obsolete option - it has no effect
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
gpg: WARNING: "--no-use-agent" is an obsolete option - it has no effect
Local repo myrepo-unstable has been successfully published.
Please setup your webserver to serve directory '/mydir/.aptly/public' with autoindexing.
Now you can add following line to apt sources:
deb http://your-server/public/ubuntu/ bionic-unstable main
Don't forget to add your GPG key to apt with apt-key.
You can also use `aptly serve` to publish your repositories over HTTP quickly.
Я добавляю следующий репозиторий в /etc/apt/sources.list:
deb [arch=amd64 trusted=yes] http://your-server/public/ubuntu/ bionic-unstable main
Однако при попытке обновить хранилище я получаю следующую ошибку
$ sudo apt-get update
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Hit:2 http://us.archive.ubuntu.com/ubuntu bionic InRelease
Get:3 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:4 http://your-server/public/ubuntu bionic-unstable InRelease [3,055 B]
Get:5 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Err:4 http://your-server/public/ubuntu bionic-unstable InRelease
Undetermined Error [IP: XXX.XXX.XXX.XXX 80]
Fetched 247 kB in 5s (47.3 kB/s)
Reading package lists... Done
W: Failed to fetch http://your-server/public/ubuntu/dists/bionic-unstable/InRelease Undetermined Error [IP: XXX.XXX.XXX.XXX 80]
W: Some index files failed to download. They have been ignored, or old ones used instead.
Я вижу, что файлы были загружены в / var / lib / apt / lists / Partal /, поэтому нет никаких признаков проблемы с подключением, которую я также подтвердил, запустив wget вручную по URL-адресу и получив результат.
Проблема, я думаю, что-то в подписании GPG. Если я удачно изменю команду публикации, чтобы она была без знака, у меня не возникнет проблемы:
$ aptly publish drop bionic-unstable public/ubuntu
Removing /mydir/.aptly/public/public/ubuntu/dists/bionic-unstable...
Cleaning up prefix "public/ubuntu" components main...
Published repository has been removed successfully.
$ aptly publish repo -skip-signing myrepo-unstable public/ubuntu
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Local repo myrepo-unstable has been successfully published.
Please setup your webserver to serve directory '/mydir/.aptly/public' with autoindexing.
Now you can add following line to apt sources:
deb http://your-server/public/ubuntu/ bionic-unstable main
Don't forget to add your GPG key to apt with apt-key.
You can also use `aptly serve` to publish your repositories over HTTP quickly.
Теперь я могу обновить список APT на моей целевой машине:
$ sudo apt-get update
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Hit:2 http://us.archive.ubuntu.com/ubuntu bionic InRelease
Get:3 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Ign:4 http://your-server/public/ubuntu bionic-unstable InRelease
Get:5 http://your-server/public/ubuntu bionic-unstable Release [2,347 B]
Ign:6 http://your-server/public/ubuntu bionic-unstable Release.gpg
Get:7 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Fetched 249 kB in 1s (240 kB/s)
Reading package lists... Done
Теперь я также могу устанавливать пакеты. Тем не менее, я хотел бы иметь возможность создать подписанный репозиторий, но я понятия не имею, почему вход в систему приводит к невозможности использования репозитория.
Любые мысли или предложения будут наиболее ценными.