====== Pakete bauen ====== Wie baue ich mir eigene Ubuntu Pakete? Quelle: [[http://wiki.ubuntuusers.de/Grundlagen_der_Paketerstellung|Grundlagen_der_Paketerstellung]] Manchmal ist es notwendig sich eigene Ubuntu Pakete zu bauen, wenn man diese immer wieder installiert (z.B. zum Testen einer VM o.ä.). ===== Vorbereitungen ===== Folgende Pakete zum erstellen eigener //.deb// Dateien installieren: apt-get install debhelper dh-make dpkg-dev fakeroot lintian ==== Arbeitsumgebung ==== Damit keine verwechselungen einzelner Paketquellen vorkommen können, erstellt man sich am Besten einen Ordner für jedes Quellpaket. cd /usr/local/src mkdir cd (keine Großbuchstaben verwenden) Paketquelle runterladen (als git oder apt-get source) und evtl. entpacken. cd ==== Debian-Dateien ==== Debian-Dateien zum Paketieren erstellen. dh_make -e "email@email.com" -c gpl -f ../. //-e// fragt die Mailadresse ab, die beim Anmelden bei PPA verwendet wird. Dies kann auch weggelassen werden, wenn das Paket für die eigene Verwendung gebaut wird. //-c// gibt die Lizensierung an unter der dieses Programm steht. Verwendet werde können **gpl**, **lgpl**, **artistic** und **bsd**. Hinter //-f// steht der Pfad zum heruntergeladenen Quellcode. Nach dem Ausführen bekommt man einige Fragen gestellt. Type of package: single binary, multiple binary, library, kernel module or cdbs? [s/m/l/k/b] Gefragt wird, ob eine einzelne Binär-Datei (**s**), mehrere Binär-Dateien (**m**), eine Bibliothek (**l**), ein Kernelmodul (**k**) oder ein cdbs (**b**) paketiert werden soll: Danach werden Infos zum Ersteller und dem Paket angezeigt. ==== Debian-Dateien bearbeiten ==== Nach dem obigen Befehl wurde nun in unserem Verzeichnis ein Verzeichnis namens "debian" erstellt. Hier befinden sich die Informationsdateien für die Paketerstellung. Die Dateien mit der Endung **.ex** oder **.EX** sind optional und können, falls nicht benötigt, gelöscht werden. rm -f *.ex *.EX Von den übrig gebliebenen Dateien ist die //rules// die wichtigste Datei. Sie ist ein Shellscript, welches bei der Paketerstellung ausgführt wurde und evtl. Kompilierungsvorgänge steuert. In dieser Datei müssen die Befehle für einen Kompilierungsvorgang, wie in der README (ist bei vielen Programmen dabei) beschrieben, Schritt für Schritt stehen. z.B. cmak . && make oder ./configure --prefix=/usr/bin $$ make ==== Paket erstellen ==== Jetzt geht man einfach in den Quellordner mit dem //debian// Verzeichnis und startet die Paketierung: dpkg-buildpackage -S -rfakeroot Man wird 2 mal nach seinem Password für den GnuPG-Schlüssel gefragt. Nach dem Bauen befindet sich in unserem Quellordner die Quelldatei //*.sources.changes//. Diese Datei kann man durch pBuilder zu richtigen Debianpaketen umwandeln oder sie einfach ins Internet zu z.B. Launchpad/PPA hochladen, um richtige Debianpakete bauen zu lassen. Mit dem folgenden Befehl kann das Quellpaket auf evtl. Fehler geprüft werden: lintian -i *.dsc