LUGA 01. Februar 2006
Vorwort Dieses Dokument beschreibt Aufbau und Struktur eines Debian-Pakets und eine einfache Möglichkeit selbst Pakete zu erstellen. Wenn Sie professionell wollen, lesen Sie bitte die Debian Packaging Manual
Debian Pakete - Wofür? einfache Installation diverser Software für...... selbstgeschriebene Skripte oder Programme... selbst kompilierte Programme (weil nicht in Distribution vorhanden / sehr neu / spezielle Wünsche)... fehlerbeseitigte Version eines Pakets... modifiziertes Distributions-Paket (Anpassung, z.b. weniger/mehr Features, kleinerer Speicherplatzverbrauch) Vorteile ein Paket für viele Distributionen einfache (De-)Installation einfache Bereitstellung für Dritte
Debian Pakete - Wofür? einfache Installation diverser Software für...... selbstgeschriebene Skripte oder Programme... selbst kompilierte Programme (weil nicht in Distribution vorhanden / sehr neu / spezielle Wünsche)... fehlerbeseitigte Version eines Pakets... modifiziertes Distributions-Paket (Anpassung, z.b. weniger/mehr Features, kleinerer Speicherplatzverbrauch) Vorteile ein Paket für viele Distributionen einfache (De-)Installation einfache Bereitstellung für Dritte
Verbreitung Distributionen mit Debian Paketformat: Debian Dynebolic (XBox-fähige Distribution) KNOPPIX / Gnoppix / Kanotix / Lamppix / Damn Small Linux Linspire MEPIS Progeny Skolelinux SphinxOS Ubuntu / Kubuntu Xandros Xebian (Debian auf XBox)
Verbreitung Distributionen mit Debian Paketformat: Debian Dynebolic (XBox-fähige Distribution) KNOPPIX / Gnoppix / Kanotix / Lamppix / Damn Small Linux Linspire MEPIS Progeny Skolelinux SphinxOS Ubuntu / Kubuntu Xandros Xebian (Debian auf XBox)
einfaches komprimiertes Archiv debian-binary: Text-Datei mit der Versions-Nummer des jeweiligen Package-Standards (2.0) Metainformationen (Abhängigkeiten, Dateigröße) MD5-Hashes der im Paket enthaltenen Dateien Skripte, die vor/nach (De-)Installation ausgeführt werden data.tar.gz Programme und Bibliotheken Konfigurationsdateien Manuals sonstige Programmdaten
einfaches komprimiertes Archiv debian-binary: Text-Datei mit der Versions-Nummer des jeweiligen Package-Standards (2.0) Metainformationen (Abhängigkeiten, Dateigröße) MD5-Hashes der im Paket enthaltenen Dateien Skripte, die vor/nach (De-)Installation ausgeführt werden data.tar.gz Programme und Bibliotheken Konfigurationsdateien Manuals sonstige Programmdaten
einfaches komprimiertes Archiv debian-binary: Text-Datei mit der Versions-Nummer des jeweiligen Package-Standards (2.0) Metainformationen (Abhängigkeiten, Dateigröße) MD5-Hashes der im Paket enthaltenen Dateien Skripte, die vor/nach (De-)Installation ausgeführt werden data.tar.gz Programme und Bibliotheken Konfigurationsdateien Manuals sonstige Programmdaten
einfaches komprimiertes Archiv debian-binary: Text-Datei mit der Versions-Nummer des jeweiligen Package-Standards (2.0) Metainformationen (Abhängigkeiten, Dateigröße) MD5-Hashes der im Paket enthaltenen Dateien Skripte, die vor/nach (De-)Installation ausgeführt werden data.tar.gz Programme und Bibliotheken Konfigurationsdateien Manuals sonstige Programmdaten
md5sums: MD5-Summen im Format MD5-Hash PFAD/DATEI (post pre)(inst rem) Maintainerskripte, die vor (pre) bzw. nach (post) Installieren (inst) bzw. Entfernen (rem) ausgeführt werden control Metadaten (Maintainer, Beschreibung usw... ) conffiles Liste mit sämtlichen Konfigurationsdateien
md5sums: MD5-Summen im Format MD5-Hash PFAD/DATEI (post pre)(inst rem) Maintainerskripte, die vor (pre) bzw. nach (post) Installieren (inst) bzw. Entfernen (rem) ausgeführt werden control Metadaten (Maintainer, Beschreibung usw... ) conffiles Liste mit sämtlichen Konfigurationsdateien
md5sums: MD5-Summen im Format MD5-Hash PFAD/DATEI (post pre)(inst rem) Maintainerskripte, die vor (pre) bzw. nach (post) Installieren (inst) bzw. Entfernen (rem) ausgeführt werden control Metadaten (Maintainer, Beschreibung usw... ) conffiles Liste mit sämtlichen Konfigurationsdateien
md5sums: MD5-Summen im Format MD5-Hash PFAD/DATEI (post pre)(inst rem) Maintainerskripte, die vor (pre) bzw. nach (post) Installieren (inst) bzw. Entfernen (rem) ausgeführt werden control Metadaten (Maintainer, Beschreibung usw... ) conffiles Liste mit sämtlichen Konfigurationsdateien
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control Package: Name des Pakets (z.b. amarok) Version: Versionsnummer (z.b. 1.3.6-2) Architecture: Architektur (z.b. i386) Maintainer: Paketverwalter (z.b. <michael.hartmann@as-netz.de>) Description: Beschreibung des Pakets (Einrücken, leere Zeilen mit. maskieren) Installed-Size: Größe in KiB (z.b. 1337) Depends: Abhängigkeiten (z.b. kdelibs) uvm. (z.b.: Recommends, Suggests, Conflicts, Provides)
control - Beispiel Package: amarok Version: 1.3.6-2 Architecture: i386 Maintainer: <michael.hartmann@as-netz.de> Description: genialer Musik-Player. super neue selbst kompilierte Version Installed-Size: 12151 Distribution: experimental Depends: kdelibs Conflicts: gnome
data.tar.gz alle notwendigen Dateien für das Programm (Binärdaten, Bibliotheken, Konfigurationsdateien, Manuals... ) in jeweiligen Unterverzeichnissen (in die sie später entpackt werden) werden bei der Installation nach / extrahiert
Pakete selbst erstellen Unterordner mit allen benötigten Dateien in den jeweiligen Verzeichnissen (später in data.tar.gz) Unterordner DEBIAN mit den Metadaten (später in ) Maintainerskripte und Dateien mit Metadaten in DEBIAN/ erstellen md5sums erstellen: find /unterordner -type f -exec md5sum { } >> DEBIAN/md5sums Paket mit dpkg-deb -b unterverzeichnis paketname.deb erstelllen
Vorwort leider noch nicht genug Wissen, um Debian Maintainer zu werden (Debian Pakete werden über Source Packages gebaut) relativ schwer (mit dieser Methode) Pakete aus selbst kompilierter Software zu bauen für einfachere Pakete: evtl. alien und checkinstall dennoch: praktisch für selbstgeschriebene Programme oder kleine Änderungen an bestehenden Paketen daher: Debian Packaging Manual lesen und alle Debian Maintainer werden :)
Vorwort leider noch nicht genug Wissen, um Debian Maintainer zu werden (Debian Pakete werden über Source Packages gebaut) relativ schwer (mit dieser Methode) Pakete aus selbst kompilierter Software zu bauen für einfachere Pakete: evtl. alien und checkinstall dennoch: praktisch für selbstgeschriebene Programme oder kleine Änderungen an bestehenden Paketen daher: Debian Packaging Manual lesen und alle Debian Maintainer werden :)