Utwórz repozytorium deb z kilkoma wersjami tego samego pakietu

16

Chcę utworzyć własne repozytorium deb do przechowywania niektórych pakietów. Próbowałem reprezentpro i działa dobrze, z wyjątkiem jednej podstawowej cechy. Reprepro nie może przechowywać w repozytorium kilku wersji tego samego pakietu.

Możliwość przechowywania kilku wersji tego samego pakietu jest dla mnie niezbędna, więc pytam, jakie oprogramowanie może to zrobić.

Oto fragment reprezentatywnego FAQ, który pokazuje, że nie może tego zrobić:

3.1) Can I have two versions of a package in the same distribution?
-------------------------------------------------------------------
Sorry, this is not possible right now, as reprepro heavily optimizes
at only having one version of a package in a suite-type-component-architecture
quadruple.
You can have different versions in different architectures and/or components
within the same suite. (Even different versions of a architecture all package
in different architectures of the same suite). But within the same
architecture and the same component of a distribution it is not possible.
Besarabow
źródło

Odpowiedzi:

11

O ile rozumiem, mini-deinstalacja wymaga plików .changes debiana podczas dodawania pakietów. Ponieważ miałem tylko dostępne pliki .deb, znalazłem, że trafnie obsługuje również wiele wersji.

Kolejną lekką opcją jest fracht, który jest zestawem skryptów powłoki do utrzymywania repozytorium debian. Teraz (2017) korzystam z frachtu od trzech lat, aby utrzymywać małe, ale aktywnie aktualizowane repozytorium, z dobrymi wynikami. Jedną z kluczowych funkcji była możliwość przechowywania wielu wersji pakietu.

Edycja: Zaktualizowano link do nowego repozytorium frachtu, ponieważ poprzedni nie był aktualizowany od 2014 roku.

bohrax
źródło
1
Downvoter: chcesz opracować?
bohrax
1
Uwaga, freightktóra została rozwidlona i jest obecnie utrzymywana na github.com/freight-team/freight - oryginalna wersja nie była aktualizowana od 2014 roku.
Wolfgang
@WolfgangThanks, zaktualizowałem link w odpowiedzi!
bohrax
9

Rozwiązaniem jest użycie mini-deinstalacji do repozytoriów debetów managin. Nie usuwa poprzedniej wersji pakietu z repozytorium.

Besarabow
źródło
2
Wydaje się, że jest to prawdą tylko wtedy, gdy „keep_old = 1” jest ustawione w mini-dinstall.conf. Domyślnie (zgodnie ze stroną podręcznika i najnowszymi doświadczeniami) jest usuwanie starszych wersji. Testowane z wersją 0.6.29ubuntu1.
pendor,
2

Słyszałem dobre rzeczy o alternatywnym transporcie:

https://github.com/rcrowley/freight

HTH, mistige

mistige
źródło
Nie jestem pewien, dlaczego ta odpowiedź została odrzucona, chyba że z powodu jej braku szczegółów. Fracht rzeczywiście wygląda jak realna alternatywa dla reprezentacji, którą zamierzam wypróbować, ponieważ mam taką samą potrzebę jak OP
killthrush
Nie jestem zwolennikiem, ale być może dlatego, że w mojej odpowiedzi wspomniano już rok temu w mojej odpowiedzi. W każdym razie mogę poręczyć za to realną opcję. Używam go od ponad roku w małym, ale aktywnie aktualizowanym repozytorium. Ten problem nas ugryzł
bohrax
1
@bohrax: Wygląda na to, że freightzostał rozwidlony i obecnie jest utrzymywany na github.com/freight-team/freight .
Wolfgang
-1

Jeśli chcesz samodzielnie napisać plik Packages (np. Za pomocą skryptu niestandardowego), możesz umieścić tam kilka wersji tego samego pakietu, a apt-get pozwoli ci zainstalować określoną wersję ze składnią

apt-get install packagename=version

Możesz uzyskać wszystkie informacje potrzebne do napisania tego pakietu

dpkg-deb --info package.deb

i

md5sum package.deb

Aktualizacja apt-get wybierze również najwyższy numer wersji (przynajmniej w moich ograniczonych testach).

pfyon
źródło
Dziękuję za odpowiedź, ale wolę użyć systemu, który wygeneruje plik pakietów.
bessarabov
To nie odpowiada na pytanie dotyczące tworzenia repozytorium pakietów z wieloma wersjami tego samego pakietu. To odpowiedź na inne pytanie.
gertvdijk
-2

Jak mówi oprogramowanie, starsze są usuwane, gdy pojawia się nowe. Zwykle odbywa się to za pomocą wielu repozytoriów. Podobnie jak Ubuntu i Debian mają wiele repozytoriów dla stabilnych i niestabilnych lub Natty, Oneiric,… musisz mieć wiele repozytoriów.

Zwykle menedżerowie pakietów wybierają najnowszą wersję pakietu, więc użytkownikom trudno będzie również wybrać.

Martin Ueding
źródło
1
Utworzenie wielu repozytoriów nie rozwiązuje mojego problemu. Potrzebuję wielu wersji tego samego pakietu, aby znajdować się w tym samym repozytorium. Dla tych, którzy są zainteresowani, dlaczego muszę to tutaj jest temat z moim wyjaśnieniem: answers.launchpad.net/launchpad/+question/171452
bessarabov
Obawiam się, że musisz spojrzeć na swój problem z innej perspektywy, ponieważ zwykłe repozytorium Debiana nie obsługuje wielu wersji.
Martin Ueding,
2
Nie masz racji. Zobacz regularne repo debian ftp.us.debian.org/debian/pool/main/p/perl i zobacz, że istnieje kilka wersji tego samego pakietu dla tego samego archiwum.
bessarabov