Debian -- Pakete im Detail

Come 2 Linux 2006

[Debian Derivates Collage]

Gliederung des Vortrags

Technische Daten

  • Debian-Pakete sind ar-Archive:
    1. Version (debian-binary)
    2. Metadaten (control.tar.gz)
    3. Daten (data.tar.gz)
  • Auf jedem Unix entpackbar

     

  • Quellcode besteht aus 2--3 Dateien:
    1. Kontrolldatei
    2. Originales Tar-Archiv
    3. Debian-Patch
  • Auf jedem Unix entpackbar

[ar t foo.deb]

Metadaten

Allgemeine Informationen zum Paket
Name und Version
Sektion und Priorität
Kurze und lange Beschreibung
Abhängigkeiten
Paket-Betreuer
Technische Metadaten
Konfigurationsdateien
Debconf-Informationen
Skripte

Metadaten von klogd

[apt-cache show klogd]

Paketierungsregeln

Regelwerke
File Hierarchy Standard (FHS)
Debian Policy
Developer's Reference
New Maintainers' Guide
Debconf Specification
Menu Policy
MIME Policy
Emacs, Java, Perl, Python Policies
Checker
lintian
linda

Abhängigkeiten (Gnumeric, vereinfacht, von 2001)

[Abhängigkeiten von Gnumeric]

Installation eines Pakets

Installation eines neuen Pakets

[Installation eines neuen Pakets]

Aktualisierung eines Pakets

[Upgrade von foo 1.2-3 (intalled) zu 1.2-4]

Pakete erstellen

Spezielle Targets in debian/rules
sudo make -f debian/rules clean
make -f debian/rules build
sudo make -f debian/rules binary
Verschiedene Build-Systeme
Makefile pur
debhelper
Yet Another Debianisation Aid (yada)
Paket bauen
apt-get source
cd paket-version
dpkg-buildpackage -rfakeroot

Pakete erstellen oder erweitern

Organisation des Quellcodes
Natürliches Debian-Paket?
Vollständiger großer Patch?
Mehrere kleine Patches?
Patch-basierter Quellcode
Patches schon angewendet?
Indexdatei vorhanden?
Eintrag in debian/rules erforderlich?
dpatch, dbs, cdbs
Patch-basierter Quellcode
Änderungen hinzufügen
Version im Changelog erhöhen
Quellcode- und Binärpakete bauen

Automatisches Bauen von Paketen

[Weg von Paketen]

Debian-Archive

Digitale Signaturen

  • Quellcode ist signiert
  • Release.gpg signiert Release
  • ... signiert Packages
  • ... signiert Pakete
  • Authentizität über MD5-Summen

[signierte Pakete]

Eigene Paket-Archive

apt-ftparchive

  apt-ftparchive packages pool > dists/stable/main/binary-i386/Packages
  apt-ftparchive sources pool > dists/stable/main/source/Sources
  apt-ftparchive contents pool > dists/stable/main/Contents
  gzip -9f $(find -name Packages -o -name Sources)
  apt-ftparchive release dists/stable > dists/stable/Release
  gpg --sign dists/stable/Release

Archive einbinden

  deb     http://www.source.org/archiv stable main
  deb-src http://www.source.org/archiv stable main

  deb     http://www.source.org/archiv/dists/stable/main/binary-i386 ./
  deb-src http://www.source.org/archiv/dists/stable/main/source ./

Zusammenfassung

Wann bauen Sie Ihr erstes Debian-Paket?