Как настроить частный репозиторий apt, который может поддерживать несколько версий?

10

Я смотрю, как настроить частный репозиторий apt (на 10.04 LTS), который может поддерживать несколько версий.

Я понимаю, что на сервере не может быть установлено несколько версий пакета. Это чисто для среды разработки, где мы хотим иметь возможность протестировать несколько версий перед выпуском их в репозиторий apt.

Я знаю, что вы можете иметь несколько версий, указав номер версии в имени пакета, однако я хочу добиться противоположного, поддерживать несколько версий одного и того же имени пакета.

например, packagename_1.0_all.deb и packagename_2.0_all.deb, а не packagename-1.0_1.0_all.deb и packagename-2.0_2.0_all.deb

Для тех, кто знаком с автоматизированным развертыванием Puppet, мы можем указать, какая версия пакета нам нужна на сервере (с тегом sure, использующим то же имя пакета).

Я пробовал debmarshal от Google, описанный на http://wiki.debian.org/HowToSetupADebianRepository, но не смог заставить его работать из-за отсутствия документации.

Том
источник

Ответы:

9

Я нуждался в мульти-версионном репо по тем же причинам, что и вы, и вот чем я закончил:

apt-get install apache2 dpkg-dev
mkdir -p /var/www/repo/binary

Затем создайте, update-repo.shчто обновит ваш репо с информацией о пакетах

#!/bin/bash
cd /var/www/repo
dpkg-scanpackages -m binary /dev/null | gzip -9c > /var/www/repo/binary/Packages.gz

Поместите ваши файлы .deb в / var / www / repo / binary и запустите update-repo.sh

На остальных машинах:

echo "deb http://myserver/repo binary" > /etc/apt/sources.list.d/myrepo.list
apt-get update

и т. д.

Волшебство происходит из-за -mзапуска dpkg-scanpackages. Без -m, только одна версия указана в Packages.gz

Я не пробовал это сделать, но это должно быть тривиально сделать то же самое для отдельных суб-репо, как предложил hbdgaf.

dtsomp
источник
1
Я искал много, пока не наткнулся на ваш ответ с -mпереключателем. Спасибо!
Марио Таке
3

Разместите его под другим именем дистрибутива. Ясный и тестирование, например. Затем измените свои записи в тестовом окне
с: deb http://homegrown.local/ubuntu lucid main
на: deb http://homegrown.local/ubuntu testing main

RobotHumans
источник