====== Debian Paket erstellen ====== ===== Simpel ===== Einfachste Variante, einfach zusammenbauen aufgrund der Ordnerstruktur im Projektverzeichnis: - Ordner für Projekt anlegen (Z.B. ''example'') - Ordnerstruktur anlegen der Projektordner entspricht dabei ''/'' - ''debian''-Ordner anlegen - ''control''-Datei anlegen - Ordnerstruktur mit gewünschten Dateien befüllen - Rechte der Dateien setzen bzw. überprüfen - in dem dem Projektordner übergeordneten Verzeichnis dpkg -b ./example example.deb Weitere Werkzeuge * ''dh-make'' zum "Debianisieren" eines Upstream-Quellpaketes * ''uupdate'' zur Datenübernahme für eine neue Upstream-Version ===== Mit Tarballs ===== * ''dpkg-buildpackage -uc -us'' ===== Mit Git ===== FIXME Das hier sind erste Notizen. Wie eine neue Version zu einem vorhandenen Repository hinzugefügt werden kann ist leider noch völlig unklar. Diverse Versuche sind bisher fehlgeschlagen. Debain-Paket lediglich mit Git verwalten Es stehen keine Tarballs zur Verfügung Werkzeug: git-buildpackage Wenn Änderungen gemacht wurden, so sind sie mit git clean -fd git checkout . zu bereinigen Des weiteren dürfen keine Dateien mehr im Verzeichnis sein, die ggf. durch einen früheren Build-Prozeß erzeugt wurden und über z.B. .gitignore nicht angezeigt werden. Gewünschten Tag auschecken git checkout debian/3.5.14+dfsg1.orig-1 gbp buildpackage --git-ignore-branch oder aktuelle version git checkout debian/sid gbp buildpackage Changelogeintrag schreiben export DEBEMAIL="mustermann@example.com" gbp dch --snapshot --auto debian/ Änderungen mit neuem Changelog committen ===== Paket bauen ===== apt-get source cd dpkg-buildpackage -us -uc Im übergeordneten Verzeichnis ist jetzt das neue Paket abgelegt. ===== Paket ändern ===== Es gibt mehrere Möglichkeiten: - Änderungen in den Upstream einbauen - Änderungen als Patch im Debian-Paket zur Verfügung stellen * ''dpatch'', ''quilt'' * ''dch -i'' erhöht die Versionsnummer, ein entsprechender Changelogeintrag wird vorbereitet und angezeigt * apt-get source ... * Versionsnummer änderen mit ''dch'' bzw. ''debchange'' * Changelog anpassen dch --local ccpi - Paket herunterladen und lokal ändern apt-get source cd [...] Änderungen durchführen dpkg-source --commit Dadurch wird ein Patch innerhalb der Debian-Struktur erstellt dpkg-buildpackage -us -uc ===== Paket ändern mit Quilt ===== - Quellen holen apt-get source openssh - Changelog-Eintrag schreiben NMU: Non Maintainer Update cd openssh-7.9p1 dch --nmu - Prüfe Format (sollte normalerweise quilt sein): cat debian/source/format oder what-patch - ''~/.quiltrc'' konfigurieren bzw. prüfen - Alle Patches einspielen quilt push -a - Neuen Patch erstellen quilt new keylength-768.patch - Quellen ändern mit quilt edit sshkey.h #define SSH_RSA_MINIMUM_MODULUS_SIZE 768 - Am Ende quilt refresh - Paket(e) erstellen dpkg-buildpackage -us -uc Das oder die Pakete liegen dann im Verzeichnis eine Ebene höher und können ganz normal mit ''dpkg'' eingespielt werden. ===== Referenzen ===== * https://www.linux-community.de/ausgaben/linuxuser/2013/08/debian-pakete-selbst-erstellen/