Ubuntu logo

Packaging Guide

2. Die Programme einrichten

Es gibt einiges zu tun, bevor Du mit der Ubuntu-Entwicklung loslegen kannst. Dieser Artikel wird Dir helfen, dein System so einzurichten, dass Du mit Paketen arbeiten und Deine Pakete auf Ubuntu’s Hosting-Platform, Launchpad, hochladen kannst. Hierüber werden wir reden:

  • Paketierungs-Software installieren. Dies beinhaltet:

    • Ubuntu-spezifische Paketierungs-Werkzeuge

    • Verschlüsselungssoftware so dass Deine Arbeit als Deine eigene verifiziert werden kann

    • Weitere Verschlüsselungssoftware so dass Du sichere Dateitransfers machen kannst

  • Deinen Account auf Lauchpad erstellen und einrichten

  • Deine Entwicklungsumgebung aufsetzen, so dass Du lokale Builds von Paketen machen, mit anderen Entwicklern interagieren und Deine Änderungswünsche in Launchpad unterbreiten kannst.

Bemerkung

Es macht Sinn, Paketierungaufgaben direkt in der Entwicklungsversion von Ubuntu zu machen. Dies wird es Dir erlauben Deine Änderungen in derselben Umgebung zu testen, wo diese später eingepflegt und verwendet werden.

Don’t worry though, you can use Testdrive or chroots to safely use the development release.

2.1. Grundlegende Paketierungs-Software installieren

Es gibt eine Anzahl von Werkzeugen die dir das Leben als Ubuntu-Entwickler um einiges einfacher machen. Du wirst diesen zu einem späteren Zeitpunkt in diesem Handbuch begegnen. Um die meisten davon zu installieren, kannst du folgenden Befehl ausführen:

$ sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb apt-file

Merke: Seit Ubuntu 11.10 “Oneiric Ocelot” (oder falls du Zurückportierungen für eine derzeit unterstütze Version aktiviert hast) wird der folgenden Befehl das obige und weitere Werkzeuge installieren, welche für die Ubuntu-Entwicklung sehr gebräuchlich sind.

$ sudo apt-get install packaging-dev

Dieser Befehl wird folgende Software installieren

  • gnupgGNU Privacy Guard contains tools you will need to create a cryptographic key with which you will sign files you want to upload to Launchpad.
  • pbuilder – ein Werkzeug um reproduzierbare Builds eines Pakets in einer sauberen und isolierten Umgebung zu machen.

  • ubuntu-dev-tools (und devscripts, eine direkte Abhängkigkeit) – eine Sammlung von Werkzeugen, die viele Paketierungsaufgaben einfacher machen.

  • bzr-builddeb (und bzr, eine direkt anhängiges Paket) – verteilte Versionskontrolle mit Bazaar, einem neuen Weg mit Paketen in Ubuntu zu arbeiten der es einfach macht mit vielen Entwicklern am selben Quellcode zusammenzuarbeiten während es einfach bleibt Änderungen einfließen zu lassen.

  • apt-file ist eine einfache Möglichkeit das Binärpaket zu finden welches eine gegebene Datei enthält.

2.1.1. Deinen GPG-Schlüssel erstellen

GPG stands for GNU Privacy Guard and it implements the OpenPGP standard which allows you to sign and encrypt messages and files. This is useful for a number of purposes. In our case it is important that you can sign files with your key so they can be identified as something that you worked on. If you upload a source package to Launchpad, it will only accept the package if it can absolutely determine who uploaded the package.

Um Deinen GPG-Schlüssel zu erstellen, starte:

$ gpg --gen-key

GPG fragt zuerst, welche Art von Schlüssel Sie generieren möchten. Die Standardauswahl (RSA und DSA) ist eine gute Wahl. Als nächstes werden Sie nach der Schlüsselgröße gefragt. Die Standardauswahl (zur Zeit 2048) ist zwar eine gute Wahl, aber 4096 bietet deutlich mehr Sicherheit. Danach müssen Sie angeben, ob der Schlüssel zu einem bestimmten Zeitpunkt ungültig werden soll. Auch hier ist die Stadardauswahl »0« ein guter Wert, der bedeutet, dass der Schlüssel unbegrenzt gültig ist. Zum Schluss werden noch Ihr Name sowie Ihre E-Mail Adresse abgefragt. Geben Sie hier die E-Mail Adresse an, mit der Sie bei der Entwicklung bei Ubuntu tätig sein möchten. Bei Bedarf können später weitere hinzugefügt werden. Die letzte Angabe ist eine Passphrase (eine Passphrase ist ein Passwort, in dem auch Leerzeichen enthalten sein dürfen). Sie sollte sehr sicher sein.

Jetzt wird GPG einen Schlüssel für dich generieren, was ein bisschen dauern kann. Es braucht zufällige Bytes, also ist eine gute Idee das System ein wenig auszulasten. Beweg den Mauszeiger hin und her, schreib ein paar Zeilen und lade ein paar Webseiten.

Wenn das getan ist, wirst Du in etwa solch eine Meldung erhalten:

pub   4096R/43CDE61D 2010-12-06
      Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D
uid                  Daniel Holbach <dh@mailempfang.de>
sub   4096R/51FBE68C 2010-12-06

In diesem Fall ist 43CDE61D die key ID.

Als nächstes muss du den öffentlichen Teil deines Schlüssels auf einen Keyserver hochladen, sodass man Nachrichten und Dateien dir zuordnen kann. Um das zu tun, führe folgenden Befehl aus:

$ gpg --send-keys --keyserver keyserver.ubuntu.com <KEY ID>

Dies wird deinen Schlüssel auf den Ubuntu-Schlüsselserver laden, aber ein Netzwerk aus Schlüsselservern wird den Schlüssel untereinander weiterreichen. Ist der Vorgang erst einmal abgeschlossen, ist dein unterschriebener öffentlicher Schlüssel bereit alle deine Beiträge auf der ganzen Welt zu verifizieren.

2.1.2. Deinen SSH-Schlüssel erstellen

SSH steht für Secure Shell und ist ein Protokoll, welches es Ihnen erlaubt, Daten sicher über ein Netzwerk auszutauschen. Es ist üblich per SSH Zugang zur Kommandozeile eines andern Rechners zu erhalten und es zur sicheren Dateiübertragung zu verwenden. Für unsere Zwecke nutzen wir SSH hauptsächlich zum sicheren Hochladen von Paketen zu Launchpad.

Um Deinen SSH-Schlüssel zu erstellen, starte:

$ ssh-keygen -t rsa

Der Standardname ergibt normalerweise Sinn, deshalb kann er auch einfach so bleiben. Aus Sicherheitsgründen ist es ratsam eine Passphrase zu verwenden.

2.1.3. pbuilder einrichten

pbuilder ermöglicht es Ihnen, Pakete lokal auf Ihrem Rechner zu erstellen. Das dient mehreren Zwecken:

  • Die Erstellung wird in einer minimalen und sauberen Umgebung vorgenommen. Das hilft sicherzustellen, dass der Vorgang in einer wiederholbaren Weise abläuft ohne Ihr System zu modifizieren.

  • Du brauchst nicht alle nötigen Build-Abhängigkeiten lokal installieren.

  • Du kannst mehrere Instanzen für diverse Ubuntu- und Debian-Versionen einrichten

pbuilder einzurichten ist sehr einfach, starte:

$ pbuilder-dist <release> create

wobei <release> zum Beispiel raring, saucy, trusty oder im Fall von Debian vielleicht sid ist. Dies wird eine Weile dauern da es die nötigen Pakete für eine Minimalinstallation herunterlädt. Diese werden jedoch zwischengespeichert werden.

2.2. Alles einrichten um mit Launchpad arbeiten zu können

Mit einer grundlegenden lokalen Konfiguration vor Ort ist dein nächster Schritt dein System auf die Arbeit mit Launchpad einzurichten. Dieses Kapitel legt den Schwerpunkt auf folgende Themen:

  • Was Launchpad ist und einen Launchpad Account erstellen

  • Deinen GPG- und SSH-Schlüssel auf Launchpad hochladen

  • Bazaar einrichten um mit Launchpad arbeiten zu können

  • Bash einrichten um mit Launchpad arbeiten zu können

2.2.1. Über Launchpad

Launchpad ist das Kernstück der Infrastruktur in Ubuntu. Es speichert nicht nur unsere Pakete und unseren Code, sondern auch Dinge wie Übersetzungen, Fehlerberichte, Informationen über Personen die an Ubuntu arbeiten sowie deren Mitgliedschaften in Entwicklerteams. Du wirst Launchpad ebenso dazu benutzen um deine Lösungen zu veröffentlichen und andere Ubuntu-Entwickler dazu zu bringen sie zu überprüfen und zu finanzieren.

Du wirst dich mit Launchpad anmelden und ein Minumum an Informationen preisgeben müssen. Das gibt dir die Möglichkeit Code runter- und hochzuladen, Fehlerberichte auszustellen und vieles mehr.

Neben Ubuntu kann Launchpad jedes beliebige Projekt mit freier Software beherbergen. Für weitere Informationen siehe im Launchpad Hilfe Wiki.

2.2.2. Einen Launchpad Account erstellen

If you don’t already have a Launchpad account, you can easily create one. If you have a Launchpad account but cannot remember your Launchpad id, you can find this out by going to https://launchpad.net/~ and looking for the part after the ~ in the URL.

Der Registrierungsprozess von Launchpad wird nach einem Anzeigenamen verlangen. Es ist empfehlenswert hier seinen echten Namen zu verwenden, damit die anderen Ubuntu-Entwickler eine Möglichkeit haben dich besser kennenzulernen.

Sobald du einen neuen Account registrierst, wird dir Launchpad eine E-Mail mit einem Weblink senden, der deine E-Mail-Adresse bestätigt. Falls du keine E-Mail erhältst, solltest du deinen Spam-Ordner überprüfen.

The new account help page on Launchpad has more information about the process and additional settings you can change.

2.2.3. Deinen GPG-Schlüssel auf Launchpad hochladen

First, you will need to get your fingerprint and key ID.

Um Deinen GPG-Fingerabdruck zu finden, starte:

$ gpg --fingerprint email@address.com

und es wird Dir etwa sowas ausgegeben:

pub   4096R/43CDE61D 2010-12-06
      Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D
uid                  Daniel Holbach <dh@mailempfang.de>
sub   4096R/51FBE68C 2010-12-06

Then run this command to submit your key to Ubuntu keyserver:

$ gpg --keyserver keyserver.ubuntu.com --send-keys 43CDE61D

where 43CDE61D should be replaced by your key ID (which is in the first line of output of the previous command). Now you can import your key to Launchpad.

Gehe auf https://launchpad.net/~/+editpgpkeys und kopiere den “Key fingerprint” in das Textfeld. Im oben genannten Beispiel wäre das 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D. Klicke jetzt auf “Import Key”.

Launchpad benutzt den Fingerabdruck, um Ihren Schlüssel am Ubuntu-Schlüsselserver abzufragen. Bei Erfolg erhalten Sie eine verschlüsselte E-Mail mit der Bitte, den Schlüsselimport zu bestätigen. Durchsuchen Sie dazu Ihr E-Mail Postfach nach dieser E-Mail. Unterstützt Ihr E-Mail Anbieter OpenPGP-Verschlüsselung, werden Sie nach dem Passwort gefragt, dass Sie bei der Erstellung des Schlüssels verwendet haben. Geben Sie dieses ein und klicken Sie auf den Link, um zu bestätigen, dass dies Ihr Schlüssel ist.

Launchpad encrypts the email, using your public key, so that it can be sure that the key is yours. If you are using Thunderbird, the default Ubuntu email client, you can install the Enigmail plugin to easily decrypt the message. If your email software does not support OpenPGP encryption, copy the encrypted email’s contents, type gpg in your terminal, then paste the email contents into your terminal window.

Zurück auf der Launchpad-Webseite, drück die Schaltfläche zur Bestätigung und Launchpad wird den Import deines OpenPGP-Schlüssels abschließen.

Weitere Informationen findest Du auf https://help.launchpad.net/YourAccount/ImportingYourPGPKey

2.2.4. Deinen SSH-Schlüssel auf Launchpad hochladen

Öffne https://launchpad.net/~/+editsshkeys in einem Webbrowser, und öffne auch ~/.ssh/id_rsa.pub in einem Texteditor. Dies ist der öffentliche Teil Deines SSH-Schlüssels, also ist es sicher ihn auf Launchpad zu veröffentlichen. Kopiere den Inhalt der Datei und füge sie in die Textbox ein die mit “Add an SSH key” überschrieben ist. Klicke jetzt “Import Public Key”.

For more information on this process, visit the creating an SSH keypair page on Launchpad.

2.2.5. Bazaar einrichten

Bazaar ist das Werkzeug, das wir verwenden, um Quellcode-Änderungen in logischer Art und Weise zu speichern, um vorgeschlagene Änderungen auszutauschen und einzupflegen, und auch um gleichzeitig entwickeln zu können. Es wird für die Ubuntu Distributed Development Methode verwendet um an Ubuntu-Paketen zu arbeiten.

Um Bazaar zu sagen, wer Du bist, starte einfach:

$ bzr whoami "Bob Dobbs <subgenius@example.com>"
$ bzr launchpad-login subgenius

whoami teilt Bazaar mit welchen Namen und welche Email-Adresse benutzt werden soll für Commit-Nachrichten. Mit launchpad-login setzt man seine Launchpad ID. Dadurch wird Quellcode, den Du in Launchpad veröffentlichst, mit Dir verbunden.

Merke: Falls du dich nicht mehr an deine ID erinnern kannst, geh auf https://launchpad.net/~ und achte darauf, wohin es dich umleitet. Der Teil nach dem “~” in der URL ist deine Launchpad ID.)

2.2.6. Deine Shell einrichten

Genau wie mit Bazaar, müssen die Debian/Ubuntu Paketierungs-Werkzeuge auch mehr über Dich erfahren. Öffne einfach ~/.bashrc in einem Texteditor und füge etwas wie das hier a Ende hinzu:

export DEBFULLNAME="Bob Dobbs"
export DEBEMAIL="subgenius@example.com"

Speichere die Datei jetzt und starte entweder Dein Terminal neu oder starte:

$ source ~/.bashrc

(Falls du nicht die Standardanwendung bash benutzt, passe bitte die Konfigurationsdatei für diese Anwendung dementsprechend an.)