PPA & Packaging: Versionen von Paketen für mehrere Distributionen

36

(Zitat aus dem Chat)

Ich habe eine PPA auf dem Launchpad für Quellpakete für ein IRC-Bot-Projekt, mit dem ich verbunden bin (da es die gesamte Zwischenverpackung für das Zeug zwischen den Releases ist, wird es als "experimentelle" PPA klassifiziert). Frage: Ich habe das Zeug bereits für einen übersichtlichen Build verpackt. Gibt es einen Hinweis darauf, wie ich dieselbe Verpackung erstellen könnte, außer sie für Einzelgänger zu verpacken und sie mit derselben PPA zu versehen, mit der ich die übersichtliche Verpackung versehen habe?

Thomas Ward
quelle

Antworten:

41

Am einfachsten ist es wahrscheinlich, die Binärdateien auf Launchpad zu kopieren:

  1. Gehen Sie zu Ihrem PPA und klicken Sie auf "Paketdetails anzeigen":

    Bildbeschreibung hier eingeben

  2. Klicken Sie auf "Pakete kopieren":

    Bildbeschreibung hier eingeben

  3. Wählen Sie die Lucid-Pakete aus:

    Bildbeschreibung hier eingeben

  4. Wählen Sie "Maverick" für die Serie und wählen Sie "Vorhandene Binärdateien kopieren":

    Bildbeschreibung hier eingeben

  5. Klicken Sie auf "Pakete kopieren" und das wars!

Nathan Osman
quelle
Vielen Dank. Ihre Anweisungen waren genau richtig . Vielen Dank auch für die schnelle Antwort.
Thomas Ward
@ Evil: Kein Problem. Froh, dass ich helfen konnte!
Nathan Osman
4
HINWEIS FÜR ANDERE FRAGEN, DIE HIER ANGEGEBEN SIND !!! Das Kopieren vorhandener Binärdateien funktioniert NICHT IMMER für Programme, die für andere Ubuntu-Versionen bestimmt sind! Siehe mein rkhunter PPA und die Changelogs für die Lucid-Version, um zu verstehen, was ich meine: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packages
Thomas Ward
@ ThomasWard: Guter Punkt - es funktioniert nicht immer.
Nathan Osman
2
@ KhurshidAlam Sorry für die super super späte Antwort. Bei einem "Invalid Changelog" schlägt dies fehl. Daher müssen Sie jedes einzeln markieren, wenn Sie einen PPA mit einer anderen Version verwenden. [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) ist ein gutes Beispiel dafür, da ich die Distribution zu der Version hinzufügen muss, damit sie erstellt wird richtig mit all den verschiedenen Bibliotheken. (Ich halte die PAS des Nginx-Teams für den Moment aufrecht, daher verwende ich das als Beispiel.)
Thomas Ward
11

Wenn das Kopieren der Binärdateien für das von Ihnen erstellte Paket nicht funktioniert, müssen Sie für jede Distribution ein Quellpaket hochladen, indem Sie die debian/changelogDatei bearbeiten .

Neuverpacken für eine andere Distro-Version

  1. Bearbeiten Sie die debian/changelogDatei in Ihrem Quellpaketverzeichnis
  2. Ändern Sie sowohl die Version und Zielverteilung zu reflektieren , welche distro Sie bauen für

    Zum Beispiel:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. Erstellen Sie das Quellpaket neu: debuild -S
  4. Laden Sie die .changesDatei auf Ihre PPA hoch:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

Wenn der Build erfolgreich ist, dann herzlichen Glückwunsch, Sie haben gerade ein Paket für diese Distribution erstellt! Wenn nicht, müssen Sie das Build-Protokoll auf Launchpad überprüfen und alle Probleme beheben, die Sie finden.

Verweise:

TrinitronX
quelle
Das ist was ich mache! : D Die MOTUs (Götter des Universums) erklärten dies, als ich verschiedene Builds für nginxund andere Programme in einem PPA ausführen musste, und sie halfen, viele meiner Probleme zu lösen. Danke, dass du das gepostet hast! :)
Thomas Ward
Ja, ich dachte, dies wären nützliche Informationen, die dokumentiert und neuen Paketierern zur Verfügung gestellt werden könnten, da die Verwendung aller Debian-Pakettools, PPA-Uploads, Konventionen und fehlgeschlagenen Debugging-Builds eine steile Lernkurve bedeuten kann.
TrinitronX
Tatsächlich. Ich ändere die akzeptierte Antwort jedoch nicht, da zum Zeitpunkt der Beantwortung dieser Frage keine Bedenken hinsichtlich der in den verschiedenen Ubuntu-Versionen verfügbaren Bibliotheken bestanden. Mit nginxoder rkhunteroder anderen Paketen, die ich oft zurückportiere, gibt es ein großes Abhängigkeitsproblem (das depends:in der Steuerdatei unterschiedlich ist und so weiter). programversion-1~RELEASE0Daher verwende ich immer, wo ~ RELEASE0 immer eine Zahl mit der angegebenen Version ist, in der es sich befindet. Normalerweise, wenn ich von zurückportiere Debian zu Ubuntu, das ist der Fall :)
Thomas Ward
Ja, Abhängigkeiten sind definitiv ein Schmerzpunkt für das Backportieren ;-) Ich stimme zu, die akzeptierte Antwort sollte in den meisten Fällen ausreichen, und für Benutzer von Bazaar-Quellcodeverwaltungs-Repos sieht die Verwendung von Launchpads bzr-Builder-Rezept ebenfalls attraktiv aus. Wenn es jedoch um Pakete mit vielen Abhängigkeiten geht, müssen Sie manchmal ein benutzerdefiniertes Paket für Ihre Zieldistribution erstellen.
TrinitronX
Und ich habe einen Backport nginxvon Debian Unstable zu Precise, Quantal, Raring und Saucy (und Trusty in einem PPA, aber ich stelle auch sicher, dass Trusty für das NGINX-Team bis zum Einfrieren von Debian das neueste von Debian zusammengeführt in: P) hat, Leider gibt es manchmal Fehler, die ich nicht beheben kann und mit denen sich Debian befassen muss ... aus diesem Grund habe ich eine gute Beziehung zu den Debian-Betreuern :)
Thomas Ward