Я смотрю, как настроить частный репозиторий 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 , но не смог заставить его работать из-за отсутствия документации.
Разместите его под другим именем дистрибутива. Ясный и тестирование, например. Затем измените свои записи в вашем тестовом окне
с: deb http://homegrown.local/ubuntu lucid main
на: deb http://homegrown.local/ubuntu testing main
Мне был нужен мультиимеющий версию repo по тем же причинам как Вы, и это - то, с чем я закончил:
apt-get install apache2 dpkg-dev
mkdir -p /var/www/repo/binary
Затем создайте update-repo.sh
это обновит Ваш repo с информацией пакетов
#!/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 и выполните обновление-repo.sh
На остальной части машин:
echo "deb http://myserver/repo binary" > /etc/apt/sources.list.d/myrepo.list
apt-get update
и т.д. и т.д...
Волшебство происходит из-за -m
при выполнении dpkg-scanpackages. Без -m
, только одна версия перечислена в Packages.gz
Я не попробовал его, но это должно быть тривиально, чтобы сделать то же для отдельного sub-repos, как предложенный hbdgaf.