Frage Kann ich zwei Versionen desselben Pakets in einem Apt-Repository haben?


Ich benutze Ubuntu 10.04 in meiner gesamten Umgebung. Um Codebereitstellungen zu vereinfachen, implementieren wir ein privates Apt-Repository, in dem wir Builds unseres Codes bereitstellen können.

Eine der Anforderungen dieses Repositories wird sein, dass unsere QA-Abteilung jederzeit jede Version unserer Anwendung installieren kann.

Kann ich mehrere Versionen desselben Pakets in einem Apt-Repository (vorzugsweise in der gleichen Distribution) speichern? Wenn nicht, was sind mögliche Problemumgehungen, die ich verwenden könnte, um das oben beschriebene Verhalten zu erhalten?


19
2018-06-10 21:02


Ursprung




Antworten:


Ja, Sie können, und Sie müssen nichts Besonderes tun. Tatsächlich haben die üblichen Debian- und Ubuntu-Repositories normalerweise mehrere Versionen jedes Pakets (von oldstable / stable / testing / unstable oder dapper / hardy / lucid / maverick / natty). Die Distributionen haben nur ein einziges Paket in der Indexdatei jeder Version (das Packages Dateien), aber Sie müssen nicht folgen.

Na sicher, apt-get install myapp installiert nur die neueste Version (sofern nicht anders konfiguriert). Du kannst rennen apt-get install myapp=1.42 um die Installation von Version 1.42 zu erzwingen.

Vorbehalt: Wenn alle Versionen denselben Paketnamen haben, können Sie nicht mehr als einen gleichzeitig installieren lassen. Wenn dies wichtig ist, geben Sie jeder Version einen anderen Paketnamen: myapp-1.42, myapp-1.43usw. Debian und Ubuntu tun dies für Hauptversionen von Bibliotheken, wo Sie möglicherweise mehrere benötigen, wenn Sie ausführbare Dateien mit verschiedenen Bibliotheken verknüpft haben (z. libcap1 und libcap2), sowie für einige andere Pakete wie den Kernel.


19
2018-06-10 23:02



Danke für die ausgezeichnete Erklärung. Als Follow-up, wenn ich den Pfad der Anhängen von Versionsnummern an meine Pakete gehen, bricht das "apt-get upgrade"? Es scheint mir, dass jedes Mal, wenn ich meine App aktualisiere, es als eine Neuinstallation behandelt würde und ich meine Konfigurationen verlieren würde. Ich könnte das umgehen, aber ich möchte die Grenzen verstehen, bevor ich mich auf die eine oder andere Weise entscheide. Vielen Dank. - GregB
Der übliche Weg ist in diesem Fall zu haben myapp-1.42 und so weiter, plus ein Paket myapp das hängt nur vom Strom ab myapp-VERSION (oder auch myapp-stable, myapp-beta und so weiter). - Gilles
Nur ein Vorbehalt: seien Sie sicher, dass Sie nicht vergessen -m beim Laufen dpkg-scanpackages um Ihren Repository-Index zu erstellen. Andernfalls erhalten Sie nicht mehrere Paketversionen auf Ihrem Packages Dateien. - bruno nery