Passend zum Schwerpunkt dieser Ausgabe werfen wir im Guru-Training einen weiteren Blick auf die unterschiedlichen Features der großen Linux-Distributionen – hier geht es um die Kommandozeilenwerkzeuge für die Paketverwaltung.
Es gibt Aufgaben, die erledigt ein erfahrener Linux-Benutzer auf der Kommandozeile wesentlich schneller als über eine grafische Oberfläche. Dazu gehört auch das Paketmanagement. OpenSuse, Ubuntu und Mandriva Linux benutzen dafür jeweils unterschiedliche Programme: zypper (OpenSuse), apt-get (Ubuntu) und urpmi (Mandriva Linux).
Verwechseln Sie diese Tools nicht mit dem eigentlichen Paketsystem: OpenSuse und Mandriva basieren auf dem RPM-System (Red Hat Package Management), Ubuntu setzt das DEB-Paketsystem von Debian ein. Im Unterschied zu den Befehlen rpm und dpgk, mit denen Sie zwar Pakete abfragen, installieren und löschen können, sind urpmi, zypper und apt-get darauf spezialisiert, automatisch mehrere Pakete zu installieren und dabei auftretende Paketabhängigkeiten automatisch aufzulösen sowie über Paketkonflikte zu informieren.
OpenSuse: Zypper
Möchten Sie unter OpenSuse ein neues Programm installieren, starten Sie dazu in der Regel das Paketmanagement-Modul von YaST, tippen dann in der Suchmaske den gewünschten Begriff ein, markieren das Paket und klicken auf Anwenden. Der komplette Vorgang dauert selbst auf einem schnellen Rechner zwei bis drei Minuten. Erfahrene Anwender kennen in der Regel den Namen des gewünschten Pakets auswendig. Sie starten über [Alt]+[F2] und den Befehl kdesu konsole ein Terminal mit Root-Rechten und geben hier den Befehl
zypper install Paketname
ein. (Paketname müssen Sie dazu durch den Namen des zu installierenden Pakets ersetzen).
Der komplette Vorgang dauert je nach Anzahl der Paketquellen nur wenige Sekunden. Neben der Geschwindigkeit hat zypper noch weitere Vorteile. So können Sie mit dem Programm auch Installationsquellen verwalten, ohne dazu YaST zu starten. Für die tägliche Arbeit benötigen Sie in der Regel nur die zwei Befehle zypper search und zypper install. Beiden Kommandos geben Sie als Parameter den gewünschten Paketnamen mit. Zum Beispiel sucht
zypper search amarok
in sämtlichen Paketquellen nach der KDE-Jukebox Amarok. Zypper unterstützt zudem die Option -d (description) und sucht damit nicht nur nach Paketnamen, sondern auch in den Beschreibungen. Um ein Paket zu installieren, genügt der Befehl
zypper install Paketname
Abhängigkeiten löst das Kommandozeilentool automatisch. Findet zypper mehrere Pakete mit dem Namen amarok, versucht es, das neueste zu installieren. Um eine ältere Version oder eine Version aus einer bestimmten Paketquelle einzuspielen, müssen Sie zurzeit noch YaST benutzen. Dieses Feature steht aber auf der To-do-Liste der Zypper-Entwickler.
Möchten Sie ein Paket löschen, geben Sie
zypper remove Paketname
ein, wobei Sie den richtigen Paketnamen einsetzen, z. B. zypper remove amarok.
Das Kommandozeilentool von OpenSuse hilft Ihnen auch, Aktualisierungen abzufragen und einzuspielen. Eine Liste sämtlicher Updates gibt Ihnen der Befehl zypper lu (list updates) aus. Um die Updates einzuspielen, genügt der Befehl zypper update oder dessen Kurzform zypper up.
Arbeiten mit Katalogen
Zypper nennt Installationsquellen Services bzw. Kataloge. Um eine Liste der verfügbaren Quellen anzuzeigen, geben Sie den Befehl zypper repos in einer Konsole ein. Für diese reine Informationsausgabe benötigen Sie übrigens keine Root-Rechte. Abbildung 2 zeigt die Ausgabe des Befehls nach einer Installation vom EasyLinux Starter Kit mit verschiedenen Internet-Quellen für das Online-Update und die proprietären Pakete von OpenSuse 11.0. In der ersten Spalte sehen Sie die Nummer der Quelle. Die letzten zwei Spalten zeigen an, ob der Paketmanager diese Quellen benutzt (Enabled) und regelmäßig aktualisiert (Refresh).
Steht bei einer Quelle in der Spalte Aktiviert der Eintrag Nein, benutzt das System diese nicht zur Installation. Sie müssen die Quelle dann in YaST über Software / Installationsquelle wechseln einschalten.
Möchten Sie eine neue Installationsquelle hinzufügen, rufen Sie Zypper mit dem Befehl
zypper addrepo URIName
auf. Als URI geben Sie die Adresse der Quelle an, den Namen können Sie frei wählen. Anstelle von addrepo können Sie auch die Kurzform ar benutzen. Ein spezielles OpenSuse-Repository mit X-Server-Paketen richten Sie zum Beispiel mit dem Befehl
zypper addrepo http://download.opensuse.org/repositories/X11:/XOrg/openSUSE_11.0/ X-Server-Repo
ein. Die Repository-Informationen holt zypper erst bei der nächsten Paketsuche (oder bei einem Installationsversuch) aus dem Internet; suchen Sie darum nach einem Beispielpaket (etwa: zypper search xorg), um die Informationen direkt zu aktualisieren. Der Paketmanager liest dann die Informationen zur Quelle ein und fragt Sie am Schluss, ob Sie dem Schlüssel der Paketbauer vertrauen und diesen in den Schlüsselring importieren möchten. Geben Sie zweimal ja ein, um den Schlüssel zu übernehmen.
Möchten Sie eine Installationsquelle löschen, lassen Sie sich zunächst mit zypper repos die Liste ausgeben und merken sich die Nummer des Katalogs. Danach rufen Sie
zypper removerepo Nummer
auf; anstelle der Nummer können Sie auch den Aliasnamen verwenden, und die Option removerepo hat mit rr auch eine komfortable Kurzform:
# zypper rr "X-Server-Repo" Entferne Repository 'X-Server-Repo' [fertig] Repository 'X-Server-Repo' wurde entfernt.
Über die aufgezeigten Funktionen hinaus beherrscht zypper noch einige weitere. Am besten lesen Sie sich mit man zypper das Handbuch des Tools durch. Eine Übersicht über die wichtigsten Befehle zeigt auch die Tabelle Vergleich der wichtigsten Funktionen.
Vergleich der wichtigsten Funktionen
| OpenSuse | Ubuntu | Mandriva | |
|---|---|---|---|
| Suchen | zypper search Paketname |
apt-cache search Paketname |
urpmi -y Paketname |
| Installieren | zypper install Paketname |
apt-get install Paketname |
urpmi Paketname |
| Löschen | zypper remove Paketname |
apt-get remove Paketname |
– |
| Quelle hinzufügen | zypper addrepo URL Name |
für CD/DVD: apt-cdrom add |
urpmi.addmedia Name URL with hdlist.cz |
| Quellen auffrischen | zypper refresh |
apt-get update |
urpmi.update -a |
| Updates einspielen | zypper update |
apt-get upgrade |
urpmi --auto-select |
Ubuntu/Debian: APT
Ubuntu benutzt das Paketverwaltungssystem von Debian. Die im Folgenden beschriebenen Befehle gelten somit auch für Debian-Systeme und alle weiteren Distributionen, die APT einsetzen, z. B. Knoppix. Anders als zypper verwaltet apt-get die Installationsquellen nicht selbst. Dazu benutzen Sie entweder den Paketmanager Synaptic oder ändern die Datei /etc/apt/sources.list in einem Editor. Details dazu lesen Sie im Kasten Ubuntu-Paketquellen.
Ubuntu-Paketquellen
Aus welchen Quellen Ihr Ubuntu-System Programme installiert, legen Sie in der Datei /etc/apt/sources.list (Abbildung 3) fest. Sie enthält pro Zeile eine Paketquelle. Befindet sich vor einer Zeile ein Rautezeichen, ist die Quelle nicht aktiv.

Abbildung 3: Die Datei “sources.list” enthält auch viele Kommentare; für dieses Bild haben wir die relevanten Zeilen mit dem Hilfsprogramm “grep” herausgefiltert.
Um eine CD oder DVD mit DEB-Paketen als neue Quelle hinzuzufügen, legen Sie das Medium ins Laufwerk ein und geben den Befehl
sudo apt-cdrom add
in ein Terminalfenster ein, welcher der Datei /etc/apt/sources.list einen Eintrag vom Typ deb cdrom: [Name der CD] hinzufügt. Nach einer Standardinstallation benutzt das neue Kubuntu 8.10 folgende Quellen aus dem Internet:
- main: Hier finden Sie die Hauptpakete von Ubuntu, zum Beispiel den Kernel, KDE und Gnome. Den größten Teil dieser Pakete bringt die DVD bereits mit.
- restricted: Diese Paketquelle beinhaltet Programme, die auf Grund ihrer Lizenz nur bedingt weitergegeben werden dürfen oder nicht Open Source sind.
- universe: Hier befinden sich viele Zusatzprogramme von KDE und Gnome, sowie zahlreiche Tools. Ubuntu unterstützt diese Pakete offiziell nicht, trotzdem gibt es dazu Updates.
- multiverse: Dieses Repository beinhaltet Pakete, die aus lizenz- oder patentrechtlichen Gründen von Ubuntu offiziell nicht unterstützt werden.
- intrepid-updates: Für die meisten Repositories gibt es eine zugehörige Paketquelle
intrepid-updatesmit Aktualisierungen; “Intrepid Ibex” ist der Codename von Ubuntu/Kubuntu 8.10. - intrepid-security: Für einige Repositories gibt es zudem Paketquellen mit Sicherheitsaktualisierungen.
Auch diese Quellen können Sie je nach Bedarf durch ein vorangestelltes Rautezeichen deaktivieren. Sicherheitsaktualisierungen für Feisty finden Sie auch auf der Heft-DVD. Zu jedem deb-Eintrag existiert zudem eine deb-src-Zeile: Die Abkürzung src steht für Source. Die entsprechende Quelle beinhaltet somit den Sourcecode.
Bevor Sie Programme installieren können, müssen Sie die Liste der verfügbaren Pakete auffrischen. Dazu geben Sie in einem Terminalfenster den Befehl sudo apt-get update ein. Sind Sie bereits als Administrator angemeldet, entfällt der vorangestellte sudo-Befehl. Je nach Anzahl der Quellen und Geschwindigkeit der Internetverbindung dauert dieser Vorgang einige Minuten. Der Befehl apt-get update speichert die Paketnamen, Beschreibungen und Informationen zu den Abhängigkeiten in der Datei /var/apt/cache/pkgcache.bin. Um in dieser Datei zu suchen, rufen Sie den Befehl apt-cache search Suchbegriff auf, der Ihnen als Resultat eine Liste mit Paketnamen und Kurzbeschreibungen anzeigt. Manchmal gibt es zu viele Treffer (Abbildung 4). Möchten Sie die Suche deshalb auf den Paketnamen beschränken, rufen Sie apt-cache search mit der Option --names-only auf, zum Beispiel
apt-cache search --names-only k3b
Installieren und löschen
Die zwei zentralen Befehle für das Paketmanagement unter Ubuntu lauten apt-get install Paketname und apt-get remove Paketname. Mit ersterem Befehl installieren Sie Pakete, mit letzterem entfernen Sie Software aus dem System. Abhängigkeiten von anderen Paketen löst das Tool automatisch. Sollte sich das Programm bei einer Installation über nicht verfügbare Pakete oder unstimmige Versionsnummern beschweren, haben Sie vermutlich vergessen, zuvor apt-get update aufzurufen.
Bei der Installation von Programmen unterscheidet Ubuntu vier Pakettypen: das eigentliche Paket, unbedingt benötigte Pakete, vorgeschlagene Pakete und empfohlene Pakete. Rufen Sie zum Beispiel apt-get install mplayer auf, sehen Sie als Ausgabe, welche Pakete unbedingt installiert werden müssen und welche zusätzlichen Pakete das Programm noch empfiehlt. Bestätigen Sie die Nachfrage Möchten Sie fortfahren [J/n] mit [J] oder [Eingabe], installiert das Programm nur die benötigten Pakete, keine empfohlenen. Am besten notieren Sie sich die vorgeschlagenen und empfohlenen Pakete und installieren sie je nach Wunsch später nach. Eine automatische Installation mit apt-get ist nicht möglich.
Eine sehr nützliche Funktion ist apt-get autoremove. Sie entfernt Pakete, die über Abhängigkeiten auf Ihren Rechner kamen, aber nicht mehr benötigt werden. Bei der Installation des mplayer-Pakets richtet apt-get neben dem gewünschten Paket selbst 13 weitere auf Ihrem Ubuntu-System ein. Entfernen Sie nun den Mediaplayer mit apt-get remove mplayer, bleiben diese 13 Pakete weiterhin auf Ihrem Rechner. Der Befehl
apt-get autoremove
sucht nach solchen überflüssigen Paketen und entfernt sie (Abbildung 5).
Updates spielen Sie mit dem Befehl apt-get upgrade ein. Der Befehl hat die gleiche Wirkung wie das grafische Update-Tool von Ubuntu.
Mandriva: URPMI
Analog zu zypper von OpenSuse gibt es auch für Mandriva ein Kommandozeilentool, das sich zwischen dem rpm-Befehl und dem grafischen Paketmanager von Mandriva ansiedelt: urpmi. Es verwaltet Installationsquellen und die einzelnen Software-Pakete.
Das Kommando urpmi.addmedia fügt dem System neue Repositories hinzu. Die Syntax dieses Befehls ist aber recht kompliziert; darum gibt es das Tool EasyUrpmi [3], das Ihnen die Kommandos für die wichtigsten Mandriva-Quellen per Mausklick automatisch zusammenstellt.
Bevor Sie Programme installieren können, müssen Sie die Liste der vorhandenen Pakete aktualisieren. Dies erledigt der Befehl urpmi.update -a. Sind alle Quellen auf dem neuesten Stand, rufen Sie über urpmi --auto-select die Update-Funktion auf, die alle Neuerungen einspielt. Einzelne Pakete installiert der Befehl urpmi Paketname. Zu Programmen, die sich bereits auf dem System befinden, gibt er detaillierte Informationen aus. Möchten Sie ein Paket nicht gleich installieren, sondern nur danach suchen, rufen Sie urpmi mit der Option -y Paketname auf.
[1] Smart-Paketmanager: http://www.labix.org/smart
[2] Heike Jurzik: “Smartes Chamäleon – Software-Installation unter Suse Linux”, EasyLinux 09/2006, S. 61., http://www.easylinux.de/2006/09/061-smart/
[3] Easyurpmi: http://easyurpmi.zarb.org




