Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
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 .
Die Installation von Programmen aus einem PPA ist nicht Thema dieses Artikels, dazu siehe Paketquellen freischalten/PPA.
Um ein PPA einzurichten, muss man die folgenden Dinge tun:
Sich bei Launchpad registrieren
Einen öffentlichen Schlüssel hinterlegen
Ein Ubuntero werden
PPA aktivieren
Auf der Login-Seite von Launchpad kann man unter Angabe einer E-Mail-Adresse ein Benutzerkonto (Account) auf Launchpad registrieren.
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".
Außerdem muss man ein Ubuntero werden. Was das bedeutet und wie das geht, ist im Artikel Ubuntero beschrieben.
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.
Zuerst muss folgendes Paket installiert [1] werden:
dput
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.
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.
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.
PPA - The easy way - Blogbeitrag 05/2011
Pressemitteilung von Canonical zum Start des PPA-Services - 12/2007
OpenSuSE Build Service - Das OpenSuSE Projekt bietet ebenfalls einen Build Service für Ubuntu-Pakete an