Репозиторий Apt/Debian от maven с dpkg-scanpackages

Краткое описание

Я хочу создать репозиторий apt из папки репозитория maven. Следуя руководствам и Учебники это работает нормально.

cd /path/to/maven/repo
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
echo deb file:///path/to/maven/repo ./ >> /etc/apt/sources.list
apt-get update
apt-ftparchive release . > Release 
gpg --output Release.gpg -ba Release

Однако, когда я пытаюсь получить доступ к этому репозиторию через apache, как это

deb http://repository.mukis.de/apt/ ./

E: Обнаружен раздел без заголовка Package: E: Проблема с MergeList /var/lib/apt/lists/repository.mukis.de_apt_._de E: Не удалось открыть список пакетов или файл состояния

Удаление вложенной структуры папок репозитория maven решает проблему с удаленным. Как я могу решить эту проблему, чтобы сохранить структуру maven?

Подробное описание

У меня запущен Nexus OSS Server и плагин Nexus APT, который не работает . После этого я попытался самостоятельно собрать репозитории с помощью dpkg-scanpackages или apt-ftparchive безуспешно. reprepro копирует файлы, почему это не вариант, потому что у меня есть файлы дважды без всякой причины .

В конце концов, я хочу только:

mvn deploy
apt-get install deployed-package

Репозиторию не требуется информация об архитектуре, так как будут установлены только пакеты Java.

заранее спасибо, Муки


person Muki    schedule 12.11.2013    source источник
comment
Каково содержимое файла Release. IMO, вы должны использовать deb http://repository.mukis.de/apt/ distribution component, а иерархия каталогов apache неверна.   -  person Braiam    schedule 13.11.2013
comment
Контент находится здесь: repository.mukis.de/apt/Release Однако я не хочу 'компонента дистрибутива' как такового нет, потому что это просто java-приложения   -  person Muki    schedule 14.11.2013


Ответы (1)


Ваша иерархия каталогов запутана, и apt-get доставит вам проблемы при работе с ней. Он работает внутри без проблем, но для списка пакетов это плохое имя. Запись должна быть без / в конце:

$ cat sources.list 
deb http://repository.mukis.de/apt ./
$ apt-get -s -o Dir::State::Lists=/home/braiam/lab/ --option Dir::Etc::SourceParts=/home/braiam/ --option Dir::Etc::SourceList=/home/braiam/sources.list update
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Get:1 http://repository.mukis.de ./ Release.gpg [490 B]
Get:2 http://repository.mukis.de ./ Release [1,202 B]
Ign http://repository.mukis.de ./ Release
Get:3 http://repository.mukis.de ./ Packages [417 B]
Ign http://repository.mukis.de ./ Translation-en_US
Ign http://repository.mukis.de ./ Translation-en
Fetched 2,109 B in 3s (596 B/s)
Reading package lists... Done
W: GPG error: http://repository.mukis.de ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 59B7C730340E30A7
$ ls lab/
partial  repository.mukis.de_apt_._Packages  repository.mukis.de_apt_._Release

Но, если вы хотите предотвратить странные вещи, я бы порекомендовал:

  • Постройте настоящую иерархию, подобную этой apt/dists/raring/ и apt/dists/raring/ (вы можете изменить raring на что угодно, или
  • создайте несколько относительных символических ссылок на вашем сервере, чтобы соответствовать политике репозитория Debian/apt

Почему ./ не рекомендуется?

Эти репозитории, которым нужны эти записи, называются Trivial Archives с точки зрения клиента/пользователя. У них нет поддержки apt-pinning, используемого файлами настроек из-за коллизии двух файлов Release. Если вам нужно создать apt-репозиторий, как советуют разработчики, лучше сделать это с самого начала. Существуют инструменты для настройки вашего личного архива, которые называются reprepo и mini-dinstall. Полное руководство см. на странице https://wiki.debian.org/HowToSetupADebianRepository.

person Braiam    schedule 14.11.2013
comment
Да, я прочитал вашу ссылку. Reprepo копирует все пакеты Debian :( Я надеялся этого избежать. - person Muki; 14.11.2013