====== Erstellen von Debian-Paketen und Aufsetzen eines Repositorys ====== ===== Praxis ===== * Ordner erstellen, hier **** * Als erstes erstellen wir einen Ordner mit der folgenden Ordnerstruktur: PROGRAMM \ |opt | \ | PROGRAMM | \ | DATEIEN \ DEBIAN \ control | postinst * Dateien im Ordner **debian** anlegen * control -- Datei Package: Version: Section: <'admin', 'devel' (development), 'doc', 'editors', 'games', 'graphics', 'math', 'misc', 'science', 'utils'> Priority: extra Architecture: <'all', 'amd64', 'i386'> Depends: Installed-Size: Maintainer: Max Mustermann Homepage: Description: Eine kurze Beschreibung Eine lange Beschreibung... * postinst -- Datei // Befehle, welche nach der Installation ausgeführt werden... * Unterordner von **opt** erstellen\\ Das Programm liegt nachher in diesem Verzeichnis. Beispiel: * **/opt/rktools/rkObjectHasher/** entspricht **/opt/rktools/rkHasher/** im Dateisystem #!/bin/bash java -jar /opt/rktools/rkObjectHasher/rkObjectHasher.jar * Folgende Datei unter **/usr/share/apllications/** anlegen: [Desktop Entry] Encoding=UTF-8 Name=rkObjectHasher Comment=Dies ist ein Kommentar welcher beim Ueberfahren mit der Maus angezeigt $ Exec=rkobjecthasher Icon=rkobjecthasher.png Terminal=false Type=Application Categories=GNOME;GTK;System;rkTools; * Folgende Datei unter **usr/share/pixmaps/** ablegen * rkobjecthasher.png * Anschließend das Paket bauen: dpkg -b rkobjecthasher-1.1 rkobjecthasher-1.1-all.deb ===== Theorie (und offizieller Debian Repository) ===== - Quellcode-Archiv herunterladen und entpacken - Das Quellcode-Archiv sollte "''_.orig.tar.gz''" heißen - In dem entpackten Code ein Verzeichnis "debian" anlegen - In dem Verzeichniss werden nun folgende Dateien angelegt: * debian/changelog - **Changelog** * debian/control - **Metainformationen** (Abhängigkeiten, Beschreibungen) * debian/copyright - **Copyright & Lizenz-Informationen** * debian/watch - **URL** um automatisch auf neue Versionen zu prüfen * debian/rules - **Informationen**, wie der Quellcode gebaut werden soll - Paket kann gebaut werden * dpkg-buildpackage * dpkg-buildpackage -b | Nur **binary** * dpkg-buildpackage -S | Nur **source** - Ergebniss überprüfen * Paketinhalt - wenn leer blöd dpkg -c file.deb * Metadaten dpkg --info file.deb * lintian --display-info --pendantic file.changes - Signieren und hochladen (Nur Debian Mainainer relevant) * debsign file.changes * dput file.changes ==== Programme ==== === dh_make === Templates der debian/* Dateien === pbuilder === **pbuilder** wird eingesetzt um zu garantieren, dass sämtliche build-dependes aufgelöst werden. Im Prinzip ist es ein komplett eigenständiges Debian-System aber ohne irgendwelche vorinstallierten Programme. * pbuilder --create * pbuilder --update * pbuilder --build file.dsc ((file.dsc wird erstellt nach dpkg-buildpackage -S)) ==== Dateien ==== === debian/changelog === (; urgency=low * initial release * Kommentare -- Fri, 20 Jun 2008 10:21:18 +0200 === debian/control === Source: Section: misc Priority: extra Maintainer: Max Mustermann Standards-Version: 3,9,4 Build-Depends: (>= ), <...> Homepage: http://www.rkcsd.com/ .... Package: Architecture: all Multi-Arch: foreign Depends: ${misc:Depends}, ${shlibs:Depends} Description: BLAAAAABLLAAAAAAA . ABSATZ!!! . Textetxtext === debian/copyright === Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: Files: * Copyright: 2007-2012 2012 License: GPL-3* LICENSE TEXT Files: debian/* Copyright: 2007-2012 2012 License: ISC LICENSE TEXT === debian/watch === FIXME === debian/rules === #!/usr/bin/make -f %: dh $0 override_dh_auto_install: dh_auto_install -- PREFIX=/usr * http://manpages.debian.org/cgi-bin/man.cgi?query=debhelper === Weitere Dateien === Sind nicht nötig, können aber gesetzt werden. debian/{preinst,postinst,prerm,postrem} ===== Das Repository ===== ===== Quellen ===== * https://wiki.debian.org/HowToPackageForDebian * https://www.linuxmaker.com/tutorials/debian-pakete-erstellen.html * http://debian-handbook.info/browse/de-DE/stable/debian-packaging.html * https://www.youtube.com/watch?v=uCE8FyruXvM * http://www.tomprogs.at/tutorials/linux/debian-paket-tutorials-01-ein-erstes-paket.xhtml * https://blog.pregos.info/2011/05/07/eigene-debian-pakete-und-repository-erstellen/