Freie Software bietet die Flexibilität, Programme nach eigenen Wünschen mit den entsprechenden Optionen aus dem Quelltext zu kompilieren und an eine beliebige Stelle zu installieren [1]. Was bei einzelnen Programmen noch recht einfach geht, fällt bei großen Softwarepaketen wie X.org, KDE oder GNOME ziemlich aufwändig aus. Wer oft auf diese Weise Programme installiert, aktualisiert oder entfernt, hat bald alle Hände voll zu tun und kommt nicht mehr dazu, das zu erledigen, was er eigentlich mit dem Computer tun wollte.
Deshalb übernehmen Linux-Distributoren diese Arbeit und verpacken einzelne Programme und komplette Desktop-Umgebungen in Pakete, die Sie mit Hilfe eines Paketmanagers bequem installieren, aktualisieren und auch wieder entfernen (siehe Tabelle "Paketquellen der Linux-Distributoren"). Zudem stellen einzelne Entwickler oder Gruppen von Entwicklern zusätzliche Pakete bereit (siehe Tabelle "Zusätzliche Paketquellen" und [2]). Wer das ein oder andere Programm selbst baut, erstellt sich bei Bedarf ein eigenes Paket [3][4].
Paketquellen der Linux-Distributoren
| Distribution | Quelle | Beschreibung |
|---|---|---|
| Debian | http://packages.debian.org | Paketsuche mit Download-Möglichkeit |
| Debian | http://www.debian.org/mirror/list | Liste der Debian-Mirrors |
| Fedora | http://fedora.redhat.com/Download/mirrors.html | Liste der Fedora-Mirrors |
| SuSE | http://en.opensuse.org/Mirrors_Released_Version | Liste der SuSE-Mirrors |
Zusätzliche Paketquellen
| Paket-Format | Quelle | Beschreibung |
|---|---|---|
| DEB (Debian) | http://www.backports.org | Enthält aus Debian Testing auf Debian Stable rückportierte Pakete |
| DEB (Debian) | http://www.debian-unofficial.org http://www.debian-unofficial.org | Pakete, die nicht im offiziellen Debian-Repository enthalten sind |
| DEB (Debian) | http://www.debian-multimedia.org | Zusätzliche Multimedia-Pakete |
| DEB (Debian) | http://apt-get.org | Liste mit zusätzlichen Paketquellen mit Paket-Suchmöglichkeit |
| RPM (SuSE) | http://packman.links2linux.de | Vor allem Software, die in Distributionen nicht oder nicht aktuell vorhanden ist |
| RPM (SuSE) | http://linux01.gwdg.de/~pbleser | Viele Pakete |
| RPM (SuSE) | http://en.opensuse.org/Additional_YaST_Package_Repositories | Liste mit zusätzlichen Paketquellen |
| RPM (Fedora) | http://rpm.livna.org | Zusätzliche Multimedia-Pakete |
| RPM (Fedora) | http://www.wlug.org.nz/FedoraRepositories | Liste mit zusätzlichen Paketquellen und Hilfen |
Pakete liegen üblicherweise im DEB- oder im RPM-Format vor. Einige Distributionen verwenden andere Formate: Slackware verwendet tar.gz-Archive. Der Paketmanager Portage von Gentoo hingegen nutzt Rezepte für das Bauen von Software aus dem Quelltext, sogenannte EBuilds.
DEB- oder RPM-Pakete enthalten plattform-unabhängige Daten und bereits für die gewünschte Plattform fertig durchkompilierte Programme in binärer Form.
Ein solche Binärpaket entsteht aus einem Quelltext-Paket. Dieses enthält den Quelltext der Software, eine Bauanleitung und gegebenenfalls zusätzliche, manchmal distributions-spezifische Patches, um eventuell vorhandene Fehler zu beheben oder das Programm an besondere Gegebenheiten der jeweiligen Distribution anzupassen.
Ob sich ein Paket zu einer bestimmten Distribution passt, entscheidet sich nicht alleine am Paketformat. Oft ist es möglich, ein Paket einer anderen Distribution, die das gleiche Paketformat verwendet, zu installieren. Manchmal sind die das Paket betreffenden Unterschiede zwischen zwei Distributionen jedoch zu groß dafür.
Das Paket-Management ist in zwei Ebenen unterteilt. Low-Level-Paketmanager arbeiten mit einzelnen Paketdateien, während High-Level-Paketmanager Paket-Quellen aus dem Internet mit einbeziehen und meist die Abhängigkeiten regeln.
Low-Level-Paketmanager
Der Low-Level-Paketmanager verwaltet die lokale Paketdatenbank des Systems (siehe Low-Level-Paketmanager). Er installiert, aktualisiert oder löscht Pakete. Zudem ist er in der Lage, eine Liste der installierten Pakete oder Informationen über ein installiertes Paket anzuzeigen. Für Debian-Pakete ist dpkg zuständig und für RPM-Pakete rpm.
Low-Level-Paketmanager
| Funktion | DPKG | RPM |
|---|---|---|
| Paket installieren | dpkg -i | --install Paket-Dateiname
|
rpm -i | --install Paket-Dateiname
|
| Paket entfernen | dpkg -r | --remove Paketname
|
rpm -e | --erase Paketname
|
| Paket-Informationen anzeigen | dpkg -s | --status Paketname
|
rpm -qi Paketname
|
dpkg -I | --info Paket-Dateiname
|
rpm -qpi Paket-Dateiname
|
|
| Pakete auflisten | dpkg -l
|
rpm -qa
|
| Pakete suchen | dpkg -l "Suchmuster
"
|
rpm -qa "Suchmuster
"
|
| Paket-Dateien auflisten | dpkg -L | --listfiles Paketname
|
rpm -ql Paketname
|
dpkg -c | --contents Paket-Dateiname
|
rpm -qpl Paket-Dateiname
|
|
| Zuordnung Paket/Datei | dpkg -S || --search Dateiname
|
rpm -qf Dateiname
|
Laden Sie eine Paketdatei aus dem Internet und verwenden Sie dpkg -i Paket-Dateiname oder rpm -i Paket-Dateiname, um die enthaltene Software zu installieren. Mit dpkg -r Paketname oder rpm -e Paketname deinstallieren Sie ein Paket. Das funktioniert, weil der Paketmanager weiß, welche Dateien zu einem Paket gehören. Da das Paket bereits installiert und somit dem Paketmanager bekannt ist, geben Sie nun statt dem Paket-Dateinamen nur den Namen des Paketes an.
Die Installation eines Paketes erfordert mitunter die Installation weiterer Pakete, etwa weil eine von einem Programm benötigte Bibliothek oder vom Programm benötigte Daten noch nicht installiert sind[5]. Sowohl dpkg als auch rpm weisen auf eine solche Paketabhängigkeit hin und brechen in diesem Fall die Installation ab.
Installieren Sie die noch fehlenden Pakete, um schließlich das gewünschte Paket zu installieren. Doch eventuell hängen die zusätzlich installierten Pakete von weiteren Paketen ab, die Sie ebenfalls installieren müssen. Die Installation eines einzelnen Programms wird so mitunter ziemlich aufwendig.
High-Level-Paketmanager
Hier kommt ein High-Level-Paketmanager zum Einsatz (siehe High-Level-Paketmanager). Dieser lädt das Paket samt aller Abhängigkeiten aus einer Paketquelle, einem Repository, und verwendet einen Low-Level-Paketmanager, um das eigentliche Paket und alle abhängigen Pakete zu installieren. Dieser Vorgang heißt auch Auflösen von Abhängigkeiten. Ein solches Repository ist ein FTP- oder Web-Server im Internet, eine CD oder DVD, ein lokaler Spiegel oder ein beliebiges Verzeichnis.
High-Level-Paketmanager
| Funktion | Apt/Aptitude | Rug | YaST | Yum |
|---|---|---|---|---|
| Paketliste aktualisieren | apt-get | aptitude update
|
automatisch oder rug refresh
|
automatisch | automatisch oder yum check-update
|
| Alle aktualisierbaren Pakete anzeigen | apt-get -s | aptitude -s upgrade
|
rug list-updates
|
Software | Online-Update oder Software | System-Update
|
yum list updates
|
| Alle veralteten Pakete aktualisieren | apt-get | aptitude upgrade oder apt-get | aptitude dist-upgrade
|
rug update
|
Software | Online-Update oder Software | System-Update oder Installer von der Suse-DVD
|
yum update
|
| Paket(e) installieren | apt-get | aptitude install Paketname
|
rug install Paketname
|
yast -i Paketname
oder in Paketauswahl [Leertaste] bis YaST + anzeigt
|
yum install Paketname
|
| Paket aktualisieren | apt-get | aptitude install Paketname
|
rug install Paketname
|
In Paketauswahl [Leertaste] bis YaST > anzeigt
|
yum update Paketname
|
| Paket entfernen | apt-get | aptitude remove Paketname
|
rug remove Paketname
|
[Leertaste] bis YaST - anzeigt
|
yum remove Paketname
|
| Paketinformationen anzeigen | apt-cache show Paketname
|
rug info Paketname
|
yum info Paketname
|
|
| Alle Pakete auflisten | apt-cache search ".*"
|
rug search
|
yum list
|
|
| Pakete suchen | apt-cache search Suchwort(e)
(Regulärer Ausdruck möglich)
|
rug search Suchwort(e)
|
SoftwareSoftware installieren oder löschen, Filter Suche | yum list Suchwort(e)
(Regulärer Ausdruck möglich)
|
| Zuordnung Datei/Paket | apt-file search Dateiname
|
rug package-file Dateiname
|
SoftwareSoftware installieren oder löschen, Filter Suche mit RPM "Provides" | yum provides Dateiname
|
Ein High-Level-Paketmanager bietet zudem noch eine andere wichtige Funktion: Durch seinen Zugriff auf eine oder mehrere Paketquellen schafft er es, das gesamte System mit allen installierten Paketen auf den aktuellen Stand zu bringen. Dazu vergleicht der Paketmanager die Version jedes installierten Paketes mit der neuesten verfügbaren Version und aktualisiert das Paket gegebenenfalls – eine enorme Arbeitsersparnis gegenüber einem manuellen Vorgehen.
Während YaST bislang produktiv nur mit RPM-Paketen unter SuSE zum Einsatz kommt, kommen andere Paketmanager universeller zum Einsatz: So funktioniert der RPM-basierte Yum (Yellow Dog Updater, Modified) unter Yellow Dog Linux, Fedora und SuSE [6] [7]. Debians Paketmanager Apt (Advanced Package Tool) ist mit Apt4rpm unter anderem auf den RPM-basierten Distributionen SuSE, Mandriva und Fedora lauffähig [8][9][10][11]. Auf Debian-basierten Distributionen empfiehlt sich, das auf der APT-Bibliothek Libapt aufsetzende neue Frontend Aptitude zu verwenden [12].
Vielversprechend erscheint der sich noch im Betastadium befindliche Smart Package Manager, der mit Debian-, RPM- und Slackware-Paketen klarkommt und innovative Konzepte für das Auflösen von Abhängigkeiten bietet [13]. Die Ubuntu-Entwickler ziehen in Betracht, SmartPM in einer zukünftigen Version zu integrieren. Mit Einschränkungen ist das Tool bereits jetzt unter anderem mit Debian, Ubuntu, Suse und Fedora verwendbar (siehe dazu der Artikel zu SmartPM in dieser Ausgabe).
SuSE 10.1 verwendet mit Libzypp, dem Zenworks Management Daemon (ZMD) und dem kommandozeilenorientierten Paketmanager Rug einen Ansatz zum Paketverwalten, der zentralisiertes Software-Management in großen Netzwerken ermöglichen soll [14]. Die Lösung basiert auf Ximians Red Carpet und Novells Zenworks. YaST setzt auf dieser Infrastruktur auf, sofern Sie installiert ist.



