ubuntuusers.de

ubuntuusers.deWikiLaunchpadPPA

PPA

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/package.png Ein PPA ist ein Service von Launchpad und steht für "Personal Package Archive", auf deutsch: eigenes Paketarchiv. Es bietet die Möglichkeit, Debian-Pakete für unterschiedliche Architekturen (i386, amd64 und lpia) zu bauen und diese dann entweder als Direktlinks oder durch eine eigene Paketquelle anderen zur Verfügung zu stellen.

Dieser Artikel beschäftigt sich mit den Grundlagen und wie man mit Hilfe eines PPAs Debian-Pakete erstellen kann. Voraussetzung dazu ist jedoch, dass man weiß, wie man ein Debian-Quellpaket (sogenannte source-packages) erstellt. Informationen dazu findet man in Kurzform im Artikel Paketbau oder ausführlich im Ubuntu Packaging Guide {en} .

Die Installation von Programmen aus einem PPA ist nicht Thema dieses Artikels, dazu siehe Paketquellen freischalten/PPA.

PPA einrichten

Um ein PPA einzurichten, muss man die folgenden Dinge tun:

  1. Sich bei Launchpad registrieren

  2. Einen öffentlichen Schlüssel hinterlegen

  3. Ein Ubuntero werden

  4. PPA aktivieren

Registrierung

Auf der Login-Seite {en} von Launchpad kann man unter Angabe einer E-Mail-Adresse ein Benutzerkonto (Account) auf Launchpad registrieren.

PGP-Schlüssel hinterlegen

Als nächstes benötigt man einen PGP-Schlüssel für die E-Mail-Adresse, mit der man sich angemeldet hat und welche man später in seinen Debian-Pakete angeben möchte. Mit diesem Schlüssel werden auch die erstellten Debian-Pakete signiert. Wie man einen PGP-Schlüssel erstellt, ist im Artikel GnuPG erklärt. Den erstellten Schlüssel muss man auf einen Keyserver hochladen. Dies wiederum ist im Artikel GnuPG/Web of Trust erklärt.

Hat man den Schlüssel auf einem Server hochgeladen, meldet man sich bei Launchpad an, klickt auf "Overview" und in der linken Spalte unter "Actions" auf "Update OpenPGP-Keys". Hier gibt man nun den Fingerprint des eigenen Schlüssels an und klickt auf "Import Key".

Ubuntero werden

Außerdem muss man ein Ubuntero werden. Was das bedeutet und wie das geht, ist im Artikel Ubuntero beschrieben.

PPA aktivieren

Um schließlich das PPA zu aktivieren, meldet man sich bei Launchpad an, klickt auf "Overview" und in der linken Spalte unter "Actions" auf "Activate PPA". Dort kann man sich die allgemeinen Bedingungen durchlesen, eine Beschreibung zu seinem PPA abgeben (die nachträglich jederzeit noch geändert werden kann) und zum Schluss durch Klicken auf "Add" das PPA aktivieren.

Code in das PPA laden

Zuerst muss folgendes Paket installiert [1] werden:

  • dput

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install dput 

sudo aptitude install dput 

Ab Ubuntu 10.04 wird zum Hochladen der auf der Seite des PPAs angezeigte Befehl verwendet:

dput ppa:LAUNCHPAD-ID/PPA-NAME <source.changes> 

Die Werte müssen entsprechend angepasst werden.

Bei älteren Versionen erstellt man mit einem Texteditor [2] die Datei ~/.dput.cf mit folgendem Inhalt:

1
2
3
4
5
6
[mein-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~LAUNCHPAD-ID/ubuntu/
login = anonymous
allow_unsigned_uploads = 0

LAUNCHPAD-ID muss dabei mit der eigenen Launchpad-ID ersetzt werden. Nun kann man ein Quellpaket, welches man erstellt hat, mit dem Befehl zum PPA hochladen:

dput mein-ppa SOURCE-PACKAGE.changes 

SOURCE-PACKAGE muss natürlich mit dem Namen des zuvor erstellen Debian-Quellpaketes ausgetauscht werden.

Man bekommt dann eine E-Mail, ob das Paket akzeptiert wurde und falls nicht, warum. Wurde das Quellpaket akzeptiert, wird nun versucht, Debianpakete für die Architekturen i386, amd64 und lpia zu erstellen.

In eigenen Launchpad-Profil unter "Actions -> Personal Package Archive -> View build records" kann man den Fortschritt kontrollieren und, falls das Erstellen scheitert, das Build-Log mit den Fehlern beim Paketerstellen einsehen.

Sind die Pakete erfolgreich erstellt worden, sieht man dies im Profil unter "Actions -> Personal Package Archive". Hier findet man dann auch die Direktlinks zu den Debian-Paketen und die Adresse der eigenen Paketquelle.

Problembehebung

Paket wurde "rejected"

Bekommt man nach dem Hochladen per E-Mail die Meldung, dass das Paket "rejected" (abgelehnt) wurde, kann dies mehrere Ursachen haben. Dies steht meist sehr aussagekräftig in der E-Mail beschrieben.

Bekommt man diese Meldung:

Rejected:
MD5 sum of uploaded file does not match existing file in archive
Files specified in DSC are broken or missing, skipping package unpack verification

dann ist das Problem, dass man zuvor schon mal den gleichen Code hochgeladen hat. Lädt man es nochmal hoch, muss man unbedingt die Versionsnummer in der debian/changelog ändern. Selbst wenn man das alte Paket über das Webfrontend gelöscht hat, ist es zwingend erforderlich, eine andere Versionsnummer zu wählen, da sich ein PPA immer merkt, was für Pakete man bereits hochgeladen hat. Also anstelle von X.X.X-1 muss man dann X.X.X-2 nehmen.

Paket wurde nicht gebaut

Auch dies kann viele Ursachen haben und das Build-Log gibt meistens Aufschluss darüber, was schief gelaufen ist. In dem Großteil der Fälle ist die Ursache, dass man gewisse Abhängigkeiten (also "build-dependencies") in der debian/control nicht angegeben hat oder ein falsches Kommando zum Kompilieren in der Datei debian/rules steht.

Diese Revision wurde am 8. Dezember 2013 09:11 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Community, Ubuntu, Launchpad, Programmierung, Paketbau