Czy mogę mieć dwie wersje tego samego pakietu w repozytorium apt?

19

Używam Ubuntu 10.04 w całym moim środowisku. Aby ułatwić wdrażanie kodu, wdrażamy prywatne repozytorium apt, w którym możemy wdrażać kompilacje naszego kodu.

Jednym z wymagań tego repozytorium będzie to, że nasz dział kontroli jakości będzie mógł zainstalować dowolną wersję naszej aplikacji w dowolnym momencie.

Czy mogę przechowywać wiele wersji tego samego pakietu w repozytorium apt (najlepiej w tej samej dystrybucji)? Jeśli nie, jakie są możliwe obejścia, których można użyć, aby uzyskać opisane powyżej zachowanie?

GregB
źródło

Odpowiedzi:

19

Tak, możesz i nie musisz robić nic specjalnego. W rzeczywistości zwykłe repozytoria Debian i Ubuntu zwykle mają kilka wersji każdego pakietu (od oldstable / stable / testing / unstable lub dapper / hardy / lucid / maverick / natty). Dystrybucje mają tylko jeden pakiet w pliku indeksu każdej wersji ( Packagespliki), ale nie musisz podążać za nimi.

Oczywiście apt-get install myappzainstaluje tylko najnowszą wersję (chyba że skonfigurowano inaczej). Możesz uruchomić, apt-get install myapp=1.42aby wymusić instalację wersji 1.42.

Uwaga: jeśli wszystkie wersje mają tę samą nazwę pakietu, nie można zainstalować więcej niż jednej jednocześnie. Jeśli jest to istotne, każda wersja dać inną nazwę pakietu: myapp-1.42, myapp-1.43itp Debian i Ubuntu to zrobić dla głównych wersji bibliotek, gdzie możesz potrzebować więcej niż jeden, jeśli masz wykonywalnych związanych z różnych bibliotek (np libcap1a libcap2), a także jak w przypadku kilku innych pakietów, takich jak jądro.

Gilles „SO- przestań być zły”
źródło
1
Dzięki za doskonałe wyjaśnienie. W następstwie: jeśli pójdę ścieżką dołączania numerów wersji do moich pakietów, czy to zepsuje „apt-get upgrade”? Wydaje mi się, że za każdym razem, gdy aktualizuję aplikację, będzie ona traktowana jak nowa instalacja i stracę konfigurację. Mógłbym to obejść, ale chciałbym dowiedzieć się, jakie są ograniczenia, zanim podejmę decyzję w ten czy inny sposób. Dzięki.
GregB
2
Zwykłym sposobem w tym przypadku jest, aby mieć myapp-1.42i tak dalej, a także opakowanie myapp, które po prostu zależy od prądu myapp-VERSION(lub nawet myapp-stable, myapp-betai tak dalej).
Gilles „SO - przestań być zły”,
1
Tylko zastrzeżenie: pamiętaj, aby nie zapomnieć o -muruchomieniu dpkg-scanpackagesindeksu repozytorium. W przeciwnym razie nie uzyskasz wielu wersji pakietów w swoich Packagesplikach.
bruno nery