Я смотрю, как настроить частный репозиторий 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 , но не смог заставить его работать из-за отсутствия документации.
Мне понадобилось мульти-версионное репо по тем же причинам, что и вы, и вот чем я закончил:
apt-get install apache2 dpkg-dev
mkdir -p /var/www/repo/binary
Затем создайте update-repo.sh
, который обновит ваше репо с информацией о пакетах [ 117]
#!/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
[1110 ] и т. д. ...
Волшебство происходит из-за -m
при запуске dpkg-scanpackages. Без -m
только одна версия указана в Packages.gz
Я не пробовал ее, но это должно быть тривиально, сделать то же самое для отдельных суб-репо, как предложил hbdgaf.