Die bedeutendsten Linux-Paketverwaltungen sind in zwei Software-Lager (engl. software-repositories) aufgeteilt. Bei dem einen Lager handelt es sich um die Debian-Paketverwaltung (dpkg, engl. Debian Package Manager) und bei dem anderen um die RPM-Paketverwaltung (rpm, engl. RPM Package Manager). Die Pakete sind nicht miteinander kompatibel, doch mit dem Programm „Alien“ lassen sich einige Pakete konvertieren.

Übersicht

DPKG-Paketverwaltung

Dieses Paketsystem wurde von Ian Murdock für die Debian-Distribution entwickelt und kommt auch bei anderen Debian-basierten Distributionen wie Ubuntu, Kali Linux und Knoppix zum Einsatz. Die Pakete erkennt man an der Dateiendung .deb, diese gepackten Archive bestehen aus Verzeichnissen und Dateien. Vor der Installation eines Paketes sollte immer die Binärkompatibilität überprüft werden, dies kann auf der Homepage des Paketanbieters, auf pkgs.org oder über die Website von Debian ermittelt werden. Als Beispiel wird hier auf den bekannten E-Mail-Client Mozilla Thunderbird hingewiesen. Für die Paketverwaltung wird unter Debian hauptsächlich das Programm dpkg eingesetzt, es entpackt diese und verarbeitet die darin enthaltenen Daten. Gerade in der Anfangsphase ist das APT-Software (engl. Advanced Package Tool) zu empfehlen, es handelt sich hierbei um ein vereinfachtes System für die Nutzung von dpkg.

Aufbau der Debian-Paketbezeichnung

Erläuterung der Ausgabe
  • apparmor – Name der Software
  • 2.13.2 – Versionsnummer
  • 10 – Debian Release- oder auch Revisionsnummer
  • amd64 – Architektur
  • .deb – Debian

Debian-Paketstruktur

musterpaket_2.13.2-10_amd64.deb

Version
Die Textdatei beinhaltet die Versionsnummer des Paketformats.

control.tar.xz
Komprimiertes Archiv, in diesem befinden sich wichtige Informationen zum Paket.

conffiles
Beinhaltet eine Liste zu den Konfigurationsdateien des Paketes, zum Beispiel /etc/muster.d/abstractions/samba.

control
Hier befindet sich eine Kurzbeschreibung des Paketes, dessen Funktionen und weitere Informationen wie Abhängigkeiten.

md5sums
MD5-Prüfsummen ermöglichen das Ermitteln von manipulierten Dateien im Paket.

preinst – postinst – prerm – postrm
Diese optionalen Skripte werden vor sowie nach der Installation bzw. Deinstallation ausgeführt. Das Skript prerm stoppt alle Dämonen, die mit dem Paket in Verbindung stehen, vor der Deinstallation.

data.tar.xz
In diesem komprimierten Archiv befinden sich die eigentlichen Programmdaten.

RPM-Paketverwaltung

Bei der Bezeichnung RPM Package Manager handelt es sich um ein rekursives Akronym (Red Hat Package Manager), solche Namensnennungen sind in der Welt der freien Software nicht unüblich. Diese Paketverwaltung wurde von Red Hat entwickelt und wird unter anderem bei den Distributionen CentOS, Fedora-Projekt, openSUSE, Red Hat Enterprise Linux sowie SUSE Enterprise Linux Server eingesetzt. Auch bei diesen Software-Paketen handelt es sich um komprimierte Archive mit Verzeichnissen und Dateien, man erkennt sie an der Dateiendung .rpm. Die RPM-Software-Pakete werden mit den Systemen YUM (engl. Yellowdog Updater, Modified), DNF (engl. Dandified Yum), YaST (engl. Yet another Setup Tool) und Zypper (Libzypp) verwaltet.

Aufbau der RPM-Paketbezeichnung

Erläuterung der Ausgabe
  • gimp – Name der Software
  • 2.10.12 – Versionsnummer
  • 3.fc31 – Fedora Release- oder auch Revisionsnummer
  • x86_64 – Architektur
  • .rpm – Red Hat Package Manager

RPM-Paketstruktur

musterpaket-2.10.12-3.fc31.x86_64.rpm

musterpaket.cpio
cpio-Datei (engl. copy in, copy out). Archivierungsprogramm und Dateiformat aus dem Unix-Bereich.

musterpaket.spec
Die Spec-Datei beinhaltet Metadaten, Makro-Definitionen und Installationspfade zum Paket. Diese Informationen und Anweisungen sind in verschiedene Abschnitte unterteilt, als Trennzeichen dient die %-Markierung.

Preamble
Die Präambel beschreibt die grundlegenden Informationen über das Paket z.B. Name, Version, Veröffentlichung, Lizenz, usw.

description
Die %description-Direktive gibt eine längere, mehrzeilige Beschreibung des Pakets wieder.

prep
Die %prep-Direktive definiert Skriptbefehle zur Vorbereitung der Software vor dem Beginn des Erzeugungsprozesses.

build
Die %build-Direktive bestimmt die Skriptbefehle zum Kompilieren der Software bzgl. der Installationsvorbereitung.

check
Die %check-Direktive setzt Skriptbefehle zum Selbsttest des Programms, diese werden nach %build und vor %install ausgeführt.

install
Die %install-Direktive definiert Skriptbefehle zur Installation der Binaries, beispielsweise mit „make install“.

clean
Die %clean-Direktive definiert Anweisungen, wie der Build-Root aufgeräumt werden soll.

files
Die %files-Direktive beinhaltet eine Liste von Dateien des zu installierenden Pakets.

changelog
Die %changelog-Direktive listet die Änderungen des Paketes.

musterpaket-2.10.12.tar.bz2
In diesem komprimierten Archiv befinden sich die eigentlichen Programmdaten.