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

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

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

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

например 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 – мы можем указать, какую версию пакета мы хотим на сервере (с тегом обеспечения, использующим одно и то же имя пакета).

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

Мне нужно многопоточное репо по тем же причинам, что и вы, и это то, что у меня получилось:

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.

Принимайте его под другим именем распространения. ясное и тестирование, например. Затем измените свои записи в тестовом окне
from: deb http://homegrown.local/ubuntu lucid main
to: deb http://homegrown.local/ubuntu testing main