Erstellen Sie ein Deb-Repository mit mehreren Versionen desselben Pakets

16

Ich möchte mein eigenes Deb-Repository erstellen, um einige Pakete zu speichern. Ich habe versucht, reprepro und es funktioniert gut, bis auf eine grundlegende Funktion. Reprepro kann nicht mehrere Versionen desselben Pakets im Repository speichern.

Die Möglichkeit, mehrere Versionen desselben Pakets zu speichern, ist für mich von entscheidender Bedeutung. Daher frage ich mich, welche Software dies kann.

Hier ist ein Teil der häufig gestellten Fragen zu reprepro, die zeigen, dass dies nicht möglich ist:

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.
Bessarabov
quelle

Antworten:

11

Meines Wissens erfordert mini-dinstall beim Hinzufügen von Paketen debian .changes-Dateien. Da ich nur gefunden .deb - Dateien zur Verfügung Ich habe das treffend mehrere Versionen und unterstützt.

Eine weitere leichtere Option ist cargo , eine Reihe von Shell-Skripten zur Pflege eines Debian-Repositorys. Ich nutze jetzt (2017) seit drei Jahren Fracht, um ein kleines, aber aktiv aktualisiertes Repository mit guten Ergebnissen zu unterhalten. Ein wichtiges Merkmal war die Möglichkeit, mehrere Versionen eines Pakets zu speichern.

Bearbeiten: Der Link zum neuen Frachtrepo wurde aktualisiert, da der vorherige Link seit 2014 nicht aktualisiert wurde.

Bohrax
quelle
1
Downvoter: Sorgst du dich um etwas?
Bohrax
1
Beachten Sie, dass es freightsich um eine Gabelung handelt, die jetzt unter github.com/freight-team/freight gepflegt wird. Die Originalversion wurde seit 2014 nicht mehr aktualisiert.
Wolfgang,
@WolfgangThanks, hat den Link in der Antwort aktualisiert!
Bohrax
9

Die Lösung besteht darin, mini-dinstall zum Verwalten von Deb-Repos zu verwenden. Die vorherige Version des Pakets wird nicht aus dem Repository gelöscht.

Bessarabov
quelle
2
Dies scheint nur wahr zu sein, wenn in mini-dinstall.conf "keep_old = 1" gesetzt ist. Standardmäßig (gemäß der Manpage und den jüngsten Erfahrungen) werden ältere Versionen entfernt. Getestet mit Version 0.6.29ubuntu1.
Verkäufer
2

Ich habe gute Dinge über eine Alternative gehört, Fracht:

https://github.com/rcrowley/freight

HTH, mistige

mistige
quelle
Ich bin mir nicht sicher, warum diese Antwort abgelehnt wurde, es sei denn, es mangelt an Details. Freight sieht in der Tat nach einer Alternative zu reprepro aus, die ich ausprobieren möchte, da ich das gleiche Bedürfnis habe wie die OP
killthrush 13.10.15
Ich bin nicht der Abwähler, aber vielleicht, weil in meiner Antwort Fracht schon vor einem Jahr erwähnt wurde. Wie auch immer, ich kann mich dafür verbürgen, dass es machbar ist. Ich benutze es seit über einem Jahr für ein kleines, aber aktiv aktualisiertes Repository. Dieses Problem hat uns allerdings
beeindruckt
1
@bohrax: Es sieht so aus, freightals wäre dies gegabelt worden und wird nun stattdessen unter github.com/freight-team/freight gepflegt .
Wolfgang
-1

Wenn Sie bereit sind, die Paketdatei selbst zu schreiben (z. B. mit einem benutzerdefinierten Skript), können Sie mehrere Versionen desselben Pakets darin ablegen, und mit apt-get können Sie eine bestimmte Version mit der Syntax installieren

apt-get install packagename=version

Sie können alle Informationen erhalten, die Sie zum Schreiben dieses Pakets benötigen

dpkg-deb --info package.deb

und

md5sum package.deb

apt-get upgrade wählt auch die höchste Versionsnummer (zumindest in meinen eingeschränkten Tests).

pfyon
quelle
Vielen Dank für die Antwort, aber ich bevorzuge es, ein System zu verwenden, das die Paketdatei generiert.
Bessarabov
Dies beantwortet nicht die Frage zum Erstellen eines Paket- Repositorys mit mehreren Versionen desselben Pakets. Es ist eine Antwort auf eine andere Frage.
Gertvdijk
-2

Wie Ihnen die Software mitteilt, werden die älteren gelöscht, wenn eine neue eingeht. In der Regel wird dies mit mehreren Repos durchgeführt. Genau wie Ubuntu und Debian mehrere Repos für Stable und Unstable oder Natty, Oneiric, ... haben, müssen Sie mehrere Repos haben.

Normalerweise wählen Paketmanager die neueste Version eines Pakets aus, sodass es für die Benutzer ebenfalls schwierig ist, eine Auswahl zu treffen.

Martin Ueding
quelle
1
Das Erstellen mehrerer Repos löst mein Problem nicht. Ich benötige mehrere Versionen desselben Pakets, um im selben Repo zu sein. Für diejenigen, die interessiert sind, warum ich das hier brauche, ist ein Thema mit meiner Erklärung: answers.launchpad.net/launchpad/+question/171452
bessarabov
Ich fürchte, Sie müssen Ihr Problem aus einem anderen Blickwinkel betrachten, da die regulären Debian-Repos keine Unterstützung für mehrere Versionen bieten.
Martin Ueding
2
Du hast nicht recht. Bitte schauen Sie unter debian repo ftp.us.debian.org/debian/pool/main/p/perl nach und sehen Sie, dass es mehrere Versionen desselben Pakets für dieselbe Architektur gibt.
Bessarabov