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.

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.


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.


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


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).


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ć.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.