Paketbau
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Eine der mächtigsten Funktionen Debian-basierender Distributionen einschließlich Ubuntus ist die Paketverwaltung mittels des „Advanced Package Tool“ (APT). Mittels dieses Programms (und seiner Unterprogramme) wird für den Anwender auf einfachste Art und Weise die Verwaltung von Software realisiert. Um APT nutzen zu können, muss die Software im Paketformat .deb vorliegen.
Nicht behandelt wird hier die Erstellung eigener Pakete – dazu siehe Programme kompilieren. Dieser Artikel soll als (rudimentäre) Hilfe für das Erstellen von standardkonformen Debian-Paketen dienen, die man auch im Internet veröffentlichen kann. Eine umfassendere Schritt-für-Schritt-Anleitung findet man im Artikel Grundlagen der Paketerstellung.
Grundlagen¶
Die Erstellung guter Pakete erfordert eine Menge Hintergrundwissen. Eine hervorragende und umfassende Einführung bietet die Debian-Dokumentation 🇬🇧 🇩🇪. Ein paar kurze Hinweise geben die folgenden Abschnitte.
Hinweis:
Wer plant, Pakete weiterzugeben, sollte sich unbedingt das nötige Hintergrundwissen aneignen. Dazu gehört mindestens das Durcharbeiten der genannten Einführung oder des Artikels Grundlagen der Paketerstellung
als Übung bietet sich das Erstellen eines Metapakets an.
Schritte zur Paketerstellung¶
Eine Build-Umgebung einrichten (optional)¶
Es empfiehlt sich zunächst eine kontrollierte Umgebung bereitzustellen, in der das Paket gebaut werden kann. So wird vermieden, dass ungewollte Abhängigkeiten zu dem System, auf dem das Paket erstellt wird, entstehen. Eine solche abgeschlossene Umgebung wird mittels pbuilder-dist eingerichtet.
Quellcode vorbereiten¶
"Debianisierung" mit dh_make¶
Wird als Grundlage eine Software genommen, für die noch kein Debian-Paket existiert, müssen dem Quellcode Verwaltungsinformationen bzw. ein Unterordner debian hinzugefügt werden. Dazu wird dh make verwendet. Dies beinhaltet auch Aufgaben, die beim Installieren oder Deinstallieren des Pakets noch zu erledigen sind.
Verwendung existierender Quellpakete¶
Wenn ein Debian-Paket bereits in einer anderen Distribution oder einer anderen Ubuntu-Version existiert, kann man auch das zugehörige Quellpaket als Grundlage nehmen. Im Artikel apt-get steht, wie man Quellpakete und die zum Paketbau nötigen Abhängigkeiten installiert.
Paket bauen¶
Schließlich wird aus den Paketinformationen, die mit dh make angelegt und eventuell noch angepasst wurden, das eigentliche Ubuntu-Paket gebaut. Diese Aufgabe lässt sich mit dpkg-buildpackage innerhalb der Chroot-Umgebung von pbuilder-dist erfüllen.
Problembehebung¶
Paket aus installiertem Programm erstellen¶
Mithilfe von dpkg-repack 🇬🇧 kann man bereits installierte Programme wieder in ein .deb-Paket packen. Die genaue Vorgehensweise wird im Artikel dpkg-repack erläutert.
Halbautomatiserte Erstellung von Backports¶
Das Programm prevu versuchte, alle Abhängigkeiten, die ein Paket aus der neueren Version von Ubuntu benötigt, aufzulösen und zurückzuportieren. Daneben konnte man das Programm auch benutzen, um modifizierte Versionen von Quellpaketen in ein Binärpaket zu wandeln.
Inzwischen stellt Canonical über Backports aktualisierte Pakete außerhalb der normalen Veröffentlichungszyklen bereit.
Links¶
Intern¶
Grundlagen der Paketerstellung (inkl. einiger weiterführender Links)
Open Build Service - Dienst zur Paketerstellung und -verwaltung
Extern¶
Maintainer Scripts 🇬🇧 - bildliche Darstellung der Arbeitsweise von Maintainer-Skripten
deb - Paketbau unter Ubuntu 🇩🇪 - Vortrag mit Beispiel Marc Knoll, Ubucon 2015