[[Vorlage(Getestet, general)]] [[Vorlage(Fortgeschritten)]] [[Inhaltsverzeichnis(3)]] Eine der mächtigsten Funktionen Debian-basierender Distributionen einschließlich Ubuntus ist die Paketverwaltung mittels des „[:APT: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 [http://www.debian.org/doc/maint-guide/ Debian-Dokumentation] {en}. Ein paar kurze Hinweise geben die folgenden Abschnitte. {{{#!vorlage 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 [:Metapakete_erstellen: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 [http://joeyh.name/code/dpkg-repack/ dpkg-repack] {en} 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 [:Archiv/prevu: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 [:Paketquellen#trusty-backports:Backports] aktualisierte Pakete außerhalb der normalen Veröffentlichungszyklen bereit. = Links = == Intern == * [:Grundlagen_der_Paketerstellung:] (inkl. einiger weiterführender Links) * [:dpkg-buildpackage:] * [:pbuilder-dist:] * [:Metapakete_erstellen:] * [:Open_Build_Service:] - Dienst zur Paketerstellung und -verwaltung == Extern == * [http://wiki.debian.org/MaintainerScripts Maintainer Scripts] {en} - bildliche Darstellung der Arbeitsweise von Maintainer-Skripten * [youtube:8VTFotxEwYk:deb - Paketbau unter Ubuntu] {de} - Vortrag mit Beispiel Marc Knoll, Ubucon 2015 # tag: Programmierung, Paketverwaltung, Paketbau