it-swarm-eu.dev

Erstellen und Verwalten von PPAs mit mehreren Architekturen

Ich habe ein Programm, das für jede Ubuntu-Version neu kompiliert werden muss.

Momentan packe ich es mit Ubuntus PPA nur für die aktuelle Distribution.

Schließlich muss ich Pakete für die vorherige Ubuntu-Version bereitstellen.

Ich bin mir nicht sicher, wie ich das erreichen soll.

Wie funktioniert der Ubuntu PPA Build Server? Betrachtet man nur das Verteilungsfeld im aktuellsten Changelog-Eintrag (in der Debian/Changelog-Datei), um zu bestimmen, für welche Distribution das Paket erstellt werden soll?

Die Debian-Spezifikation erlaubt es, mehrere Distributionen in das Distributionsfeld aufzunehmen. Aber das hilft mir nicht weiter.

Einige Ubuntu-Dokumente sprechen über das Kodieren des Distributionsnamens in die Versionsnummer (in der Debian-Changelog-Datei).

Aber wie funktioniert das in der Praxis? Eine neue Version des Programms ist verfügbar. Was dann? Füge ich für jede Distribution einen neuen Changelog-Eintrag hinzu und der PPA-Buildserver erstellt nach dem Einspielen automatisch für jede Distribution neue Pakete? Oder schaut sich der PPA-Buildserver nur den ersten Changelog-Eintrag an?

12
maxschlepzig

Der Weg zu gehen ist das Hochladen einmal für jede Ubunt Version.

Launchpad erstellt keine Pakete für Ubuntu-Versionen, die nicht mehr unterstützt werden, und erstellt nur ein Paket für eine bestimmte Ubuntu-Version. Die Zielversion wird (wie Sie bereits wissen) in der Datei changelog durch den neuesten Eintrag angegeben!

Denken Sie daran, dass die Pakete, von denen Ihr Programm abhängt, möglicherweise nicht in allen Ubuntu-Versionen in derselben Version verfügbar sind.

Sie sprechen auch von "Multi-Architektur" (Architektur = CUP-Typ, z. B. x86, LPIA, AMD64). Dies macht keinen Unterschied, da jedes hochgeladene Paket für alle verfügbaren Architekturen erstellt wird, solange Sie Architecture: any in der Paketdefinition (debian/control) Datei, dies ermöglicht Ihnen auch, das Paket von verschiedenen Paketen für verschiedene Architekturen abhängig zu machen (das Paket muss mehrmals definiert werden)

7
LassePoulsen

Launchpad verfügt derzeit über eine neue Funktion in der Beta-Version, mit der Sie Ihr Paket ohne zusätzlichen Aufwand für mehrere Ubuntu-Versionen gleichzeitig erstellen können. Sie können Ihre Pakete sogar jeden Tag automatisch erstellen. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted alt text

10
Isaiah

In Bezug auf die Namenskonventionen lautet der Standard wie folgt:

  • 1.0-0ubuntu1 für das Paket, das in Ubuntus offiziellem Archiv landet
  • 1.0-0ubuntu1 ~ lucidppa1 für die Version des Pakets, das Sie in Ihren PPA für lucid eingefügt haben
  • 1.0-0ubuntu1 ~ karmicppa1 für die Version dieses Pakets für Karmic

Der Grund dafür ist, dass ein ~ im Versionsfeld für eine Versionsnummer "weniger als nichts" bedeutet. Wenn also jemand Ihre PPA bei Karmic hinzufügt, erhält er das Paket ~ karmicppa1. Wenn sie dann ein Upgrade auf Lucid durchführen (und Ihre PPA lesen), wird diese durch das Lucid-PPA-Paket ersetzt. Wenn Ihr Paket dann in das offizielle Archiv gelangt, verläuft der Übergang von Ihrem PPA reibungslos.

Der andere Vorteil ist, dass durch das Einfügen des Release in das Versionsfeld deutlich wird, für welches Release die Dateien gelten (und Sie auf subtile Weise daran erinnert werden, ein Release pro Release hochzuladen). Möglicherweise benötigen Sie für jedes Ubuntu-Release auch andere Zweige, wenn Sie beispielsweise unterschiedliche Abhängigkeiten haben.

6
Scott Ritchie