Ich hätte eine Verständnisfrage. Mir ist aufgefallen, dass das postgresql-common Source-Paket die Versionsnummer 181+deb9u2 hat. Die meisten daraus resultierenden Binär-Pakete haben aber die Versionsnummer 9.6+181+deb9u2. Hier mal zwei Beispiele aus diesem Source-Paket:
https://packages.debian.org/stretch/postgresql-common hat 181+deb9u2
https://packages.debian.org/stretch/postgresql-contrib hat 9.6+181+deb9u2
Ich arbeite (mal wieder, nachdem ich schon mal aufgegeben hatte, jetzt brauche ich das beruflich) an einer Lösung für automatisches Pinning von Binärpaketen aus einem Source-Paket heraus. Ich weiß jetzt wie ich über ein gegebenes Source-Paket an die Binärpakete komme. Aber ich ging davon aus, dass Source- und daraus resultierende Binär-Pakete immer die gleiche Version haben. Das ist bei postgresql-common nicht so. Ist das wirklich debian-konform? Man kann so ja gar nicht mehr genau zurückverfolgen, aus welcher Source-Paket Version ein Binär-Paket gebaut wurde?
Unterschiedliche Versionen Source/Binärpakete? [gelöst]
-
- Beiträge: 939
- Registriert: 16.02.2009 09:35:10
Unterschiedliche Versionen Source/Binärpakete? [gelöst]
Zuletzt geändert von nudgegoonies am 08.01.2019 16:34:09, insgesamt 1-mal geändert.
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Re: Unterschiedliche Versionen Source/Binärpakete?
Das hängt vom Sourceformat ab die für das Paket deklariert worden ist. Das momentan aktuellste Format ist die Version 3.0, das wiederum unterteilt sich in "3.0 (native)" und "3.0 (quilt)". Die Man Page zu dpkg-source hält die entsprechenden Information bereit.Aber ich ging davon aus, dass Source- und daraus resultierende Binär-Pakete immer die gleiche Version haben.
Beim nativen Format haben Binärpakete keine Debian Revision, beim Quiltformat besitzen Binärpakete immer einen Debian Revision.
Also z.B. 181 für eine Version bei einem nativem Binärpaket, und das Gegenstück dazu wäre 181-1 die erste Debian Version wenn das Quellpaket im Format "3.0 (quilt) verwaltet wird.
Wozu nun noch jetzt so Teile wie "+deb9u2" in der Version?
So etwas wird benötigt um mit Abhängigkeiten richtig arbeiten zu können.
Für die Abhängigkeitsauflösung ist
Code: Alles auswählen
181+deb9u2
Code: Alles auswählen
181
Code: Alles auswählen
$ dpkg --compare-versions 181 gt 181+deb9u2 && echo "'181+deb9u2' ist größer als '181'" || echo "nee, nicht größer"
nee, nicht größer
$ dpkg --compare-versions 181 lt 181+deb9u2 && echo "'181+deb9u2' ist größer als '181'" || echo "nee, nicht größer"
'181+deb9u2' ist größer als '181'
Die Lösung für diese Frage steht in der zugehörigen debian/rules Datei.Das ist bei postgresql-common nicht so.
https://sources.debian.org/src/postgres ... rules/#L38
Anders ausgedrückt, (weil es geht) und es auch manchmal sinnvoll ist die Versionsnummer für ein Binärpaket im Dateinamen zu ändern. So wie hier der Fall.
Übrigens willst Du nicht mit den Quellpakten arbeiten wenn du Versionen betrachtest! Was Dich interessiert sind in so einem Fall immer die Binärpakte und die zugehörigen Versionen. Dazu gibt es dann dpkg-query, und apt{,-cache} um an die nötigen Info zu gelangen.
-
- Beiträge: 939
- Registriert: 16.02.2009 09:35:10
Re: Unterschiedliche Versionen Source/Binärpakete? [gelöst]
Danke Dir sehr für die Antwort. Du hast gleich zwei Probleme gleichzeitig gelöst
Mit apt-cache showsrc kann ich mir zu einem Binärpaket die Sourcedaten ansehen. Aus den Sourcedaten kann ich in der Zeile Binary alle daraus resultierenden Binary Pakete auslesen. Und dann kann ich zu denen die Binärpaket-Versionen ausgeben!
Mit apt-cache showsrc kann ich mir zu einem Binärpaket die Sourcedaten ansehen. Aus den Sourcedaten kann ich in der Zeile Binary alle daraus resultierenden Binary Pakete auslesen. Und dann kann ich zu denen die Binärpaket-Versionen ausgeben!
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.