Jak skonfigurować prywatne repozytorium apt, które może obsługiwać wiele wersji?

10

Zastanawiam się, jak skonfigurować prywatne repozytorium apt (10.04 LTS), które może obsługiwać wiele wersji.

Rozumiem, że na serwerze nie można zainstalować wielu wersji pakietu. Jest to przeznaczone wyłącznie dla środowiska programistycznego, w którym chcemy móc przetestować wiele wersji przed wydaniem ich do produkcyjnego repozytorium apt.

Wiem, że możesz mieć wiele wersji, umieszczając numer wersji w nazwie pakietu, jednak chcę osiągnąć przeciwnie, obsługiwać wiele wersji tej samej nazwy pakietu.

np. nazwa_pakietu_1.0_all.deb i nazwa_pakietu_2.0_all.deb zamiast nazwa_pakietu-1.0_1.0_all.deb i nazwa_pakietu-2.0_2.0_all.deb

Dla tych, którzy są zaznajomieni z automatyczną aplikacją Puppet - możemy określić, jakiej wersji pakietu chcemy na serwerze (za pomocą znacznika zapewnienia używającego tej samej nazwy pakietu).

Próbowałem debmarshal Google'a opisanego na http://wiki.debian.org/HowToSetupADebianRepository, ale nie mogłem go uruchomić z powodu braku dokumentacji.

Tomek
źródło

Odpowiedzi:

9

Potrzebowałem repozytorium z wieloma wersjami z tych samych powodów, co Ty, i oto, z czym skończyłem:

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

Następnie utwórz update-repo.sh, który zaktualizuje twoje repo o informacje o pakietach

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

Umieść swoje pliki .deb w / var / www / repo / binary i uruchom update-repo.sh

W pozostałych maszynach:

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

itd itd...

Magia dzieje się z powodu -muruchamiania pakietów dpkg-scan. Bez -m, tylko jedna wersja jest wymieniona w Packages.gz

Nie próbowałem tego, ale powinno to być trywialne, aby zrobić to samo dla oddzielnych repozytoriów, jak zaproponowano w hbdgaf.

dtsomp
źródło
1
Szukałem dużo, aż znalazłem twoją odpowiedź z -mprzełącznikiem. Dzięki wielkie!
Mario Tacke,
3

Hostuj pod inną nazwą dystrybucji. na przykład jasne i testowe. Następnie zmień wpisy w polu testowym
z: deb http://homegrown.local/ubuntu lucid main
na: deb http://homegrown.local/ubuntu testing main

RobotHumans
źródło