Druckansicht des Beitrags Druckansicht des Beitrags

Eigenes PPA-Repository auf Launchpad einrichten

Ein Launchpad-Repository (PPA – personal package archive) mit 1 GB freiem Speicherplatz hilft den eigenen Webserver zu entlasten. Der ersten Schritt zum eigenen Repository ist die Anmeldung bei Launchpad.

Erzeugen eines OpenPGP-Schlüssels

Um ein Repository zu bekommen, benötigt man außerdem einen OpenPGP Schlüssel. Diesen habe ich mit dem Befehl

gpg --gen-key

erzeugt. Dabei habe ich für Art, Gültigkeit und Schlüssellänge stets die vorgegebenen Standardwerte verwendet. Bei den persönlichen Angaben bitte keinen Kommentar eingeben. Zum Schluss erhält man auch eine Zeile mit der Ausgabe

pub   1024D/8E7FE678 2009-01-21

Die öffentliche Schlüssel-ID beträgt hier also 8E7FE678. Diese Ausgabe erhält man im Nachhinein übrigens mit einem

gpg --list-keys

für alle erzeugten Schlüssel bzw. für eine spezielle E-Mail-Addresse mit

gpg --list-keys your@mailaddress.com

Damit die öffentliche Schlüssel-ID allen Programmen zur Verfügung steht, setzen wir die entsprechende Umgebungsvariable durch Ergänzung der .bashrc um folgende Zeile (Schlüssel-ID anpassen):

export GPGKEY=8E7FE678

Außerdem sollte man sicherstellen, dass die Angaben zu den Packages, die aus den zwei Umgebungsvariablen DEBFULLNAME und DEBEMAIL gelesen werden, vorhanden sind. Die Schreibweise muss exakt mit den gemachten Angaben zur Erzeugung des OpenPGP-Schlüssels übereinstimmen:

export DEBFULLNAME='Your Name'
export DEBEMAIL='your@mailaddress.org'

Gibt es Differenzen erhält man nämlich bei der Erstellung von Paketen folgende Fehlermeldung: “geheimer schlüssel ist nicht vorhanden” bzw. “secret key not available”. Als nächstes Übertragen wir den öffentlichen Schlüssel auf einen öffentlichen Schlüsselserver

gpg --send-keys --keyserver keyserver.ubuntu.com 8E7FE678

Die Schlüssel-ID ist hier natürlich ebenfalls anzupassen.

Aktivieren des Launchpad-Repositories

Zum Aktivieren des Launchpad-Repositories meldet man sich mit seinem Login an und klickt auf seinen Namen (rechts oben), so dass man zum eigenen Profil komt. Anschließend wählt dann den Punkt Change Details. Im Menü wählt man OpenPGP Keys und gibt dort die Finger-Print des Schlüssels ein, den man über ein

gpg --fingerprint 8E7FE678

erhält (wiederum für eigene Schlüssel-ID anpassen). Nach dem Importieren erhält man eine E-Mail, deren Inhalt einen verschlüsselten Link enthält, den man zum Aktivieren aufrufen muss. Zum Entschlüsseln wird der entsprechende Inhalt (ab einschließlich —–BEGIN PGP MESSAGE—– bis —–END PGP MESSAGE—–) in der Datei temp.txt gespeichert, die man dann durch ein

gpg --decrypt temp.txt

in den Klartext verwandelt. Durch Aufrufen des enthaltenen Links bestätigt man den Schlüssel nochmals und kann dann unter seinem Profil das PPA aktivieren. Im nächsten Schritt muss man Ubuntero werden, d.h. den Ubuntu Verhaltenskodex akzeptieren. Ist man dies nicht, werden hochgeladene Pakete mit der Fehlermeldung “PPA uploads must be signed by an ‘ubuntero’. ” verworfen. Um Ubuntero zu werden ruft man nach dem Einloggen die Seite Ubuntu Code of Conduct auf, geht auf den Punkt Sign it!, lädt den Kodex herunter und signiert ihn mit einem

gpg --clearsign UbuntuCodeofConduct-1.0.1.txt

Den Inhalt der dadurch erzeugten Datei UbuntuCodeofConduct-1.0.1.txt.asc fügt man nun in das entsprechende Feld ein, schickt das Formular ab – und schon ist man Ubuntero.

Pakete erstellen und ins Repository übernehmen

Eigene Pakete muss man fortan beim Erstellen signieren, falls sie in das PPA-Repository aufgenommen werden sollen. Falls man ein bereits im Ubuntu-Repository vorhandenes Paket angepasst hat, also die Datei names xyz.orig.tar.gz von Beginn an vorhanden ist, so erstellt man mit

debuild -S -sd

die entsprechenden Dateien – ansonsten mit

debuild -S -sa

Zum Hochladen installiert man dput mit

sudo apt-get install dput

und erzeugt die Datei ~/.dput.cf mit diesem Inhalt (bitte launchpad-id anpassen):

[my-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~your-launchpad-id/ubuntu/
login = anonymous
allow_unsigned_uploads = 0

Das erzeugte Source-Paket wird schließlich durch ein

dput my-ppa P_V_source.changes

ins Repository übertragen. P steht dabei für den Paketnamen und V für die Versionsnummer. Die Datei P_V_source.changes sollte sich natürlich im entsprechenden Verzeichnis befinden. Anfangs habe ich mich gefragt, weshalb man zum Hochladen kein Passwort oder dergleichen benötigt, aber da die erzeugten Pakete signiert sind, ist das ja gar nicht notwendig.
Die hochgeladenen Quelltext-Pakete werden dann von Launchpad für die Platformen i386, AMD64 und LPIA kompiliert und  anschließend ins Repository gestellt. Das kann etwas dauern. Natürlich sollte man vorher selbst sicherstellen, dass das Kompilieren auf dem eigenen Rechner fehlerfrei abläuft. Während in der Vergangenheit die Packages auf dem Launchpad PPA nicht signiert wurden, soll dies zukünftig anders sein. Ich bin gespannt, wann meine Pakete signiert sind..

Kleine Tips zum Schluss

GPG-Agent nutzen

Der gpg-agent erlaubt eine etwas bequemere Anwendung von GPG, da bei mehrfacher Verwendung eines Schlüssels innerhalb einer bestimmten Zeitspanne nur beim ersten Mal nach dem Passwort gefragt wird. Installieren lässt sich der gpg-agent mit einem

sudo apt-get install gnupg-agent

Damit der gpg-agent bei jeder Sitzung gestartet wird, habe ich ihn unter System>Einstellungen>Sitzungen als Startprogramm mit dem Befehl

gpg-agent --daemon

hinzugefügt.

Schlüssel zurückziehen

Hat jemand Zugang zum privaten Schlüssel erhalten, so kann man den Schlüssel zurückziehen/als ungültig markieren (revoke). Die sehr gute revoke-Anleitung von Hackdiary hilft dabei. Lediglich den dort angegebenen MIT Server habe ich durch den Ubuntu Server ersetzt, an den ich meinen öffentlichen Schlüssel gesendet hatte. Das sollte eigentlich aber keinen Unterschied machen, da die Schlüsselserver die öffentlichen Schlüssel untereinander austauschen.

4 comments to Eigenes PPA-Repository auf Launchpad einrichten

  • steve

    Super Anleitung. Du müsstest Dir in Deinem Blog noch das GP-Rating-Plugin installieren. Ich hätte Dir 9 Sterne gegeben ;)

    Noch n kleiner Rechtschreibfehler: “…achten Angaben zur Erzeugung des OpenPGP-Schlüels übereinstimmen:..”

  • steve

    Na gut.. 8 Sterne – Kannst Du noch etwas näher auf das Erstellen inkl. Signieren eingehen?

    Danke

    • Das Erstellen von Paketen ist ein großes eigenes Thema, bei dem es auf das Paket selbst und die verwendeten Debian-Tools ankommt. Es würde daher einen eigenen Blog-Artikel verdienen. Mal sehen, evt. wenn ich mal etwas mehr Zeit habe..

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>