Verwalten von Software mit Kommandozeilen-Tools

Inhaltsverzeichnis

7.1. Verwenden von zypper
7.2. RPM – der Paket-Manager

Zusammenfassung

Dieses Kapitel behandelt zypper und RPM, zwei Kommandozeilen-Tools zum Verwalten von Software.

Verwenden von zypper

zypper ist ein Kommandozeilen-Tool für die Installation und Aktualisierung von Paketen. Damit können Sie Software per Fernzugriff oder mit Hilfe von Shell-Skripten verwalten.

In zypper ist eine Hilfeübersicht integriert:

zypper help

Allgemeine Verwendung

Die allgemeine Syntax für zypper lautet:

zypper [global-options] command [command-options] [arguments] ...

Die Komponenten in Klammern sind nicht erforderlich. Am einfachsten führen Sie zypper aus, indem Sie seinen Namen gefolgt von einem Kommando eingeben. Geben Sie z. B. für das Anwenden aller erforderlichen Patches auf den Systemtyp das Folgende ein:

zypper update

Zusätzlich können Sie aus einer oder mehreren globalen Optionen wählen, indem Sie sie direkt vor dem Kommando eingeben. Beispielsweise bedeutet --non-interactive, dass das Kommando ohne Benutzereingriff ausgeführt wird:

zypper --non-interactive update

Um die spezifischen Optionen für ein bestimmtes Kommando zu benutzen, geben Sie sie direkt nach dem Kommando ein. Beispielsweise bedeutet --auto-agree-with-licenses, dass alle benötigten Patches auf das System angewendet werden, ohne dass Lizenzen bestätigt werden - alle wurden im Voraus gelesen:

zypper update --auto-agree-with-licenses

Einige der Kommandos erfordern ein oder mehrere Argumente:

zypper install mplayer

Einige der Optionen erfordern ebenfalls ein Argument. Das Folgende bedeutet, dass das System mit neueren Paketen aktualisiert wird:

zypper update -t package

Eine Kombination aus Obigem bedeutet, dass die Installation nur mit dem Factory-Repository erfolgen und ausführlich sein soll:

zypper -v install --repo factory mplayer amarok

Installieren und Entfernen von Software mit zypper

Um ein Paket aus registrierten Repositories zu installieren, verwenden Sie

zypper install package_name

Sie können einen lokalen oder entfernten RPM direkt installieren:

zypper install http://www.example.com/package_name.rpm

Um ein installiertes Paket zu entfernen, verwenden Sie

zypper remove package_name
[Warning]Keine Pakete entfernen, die für das System obligatorisch sind

Entfernen Sie keine Pakete wie glibc, zypper, kernel oder ähnliche. Diese Pakete sind für das System erforderlich, und wenn sie fehlen, ist das System eventuell nicht mehr funktionsfähig.

zypper fordert vor der Installation oder Deinstallation eines Pakets standardmäßig eine Bestätigung an. Mit der Option --non-interactive können Sie diese Bestätigungsabfrage deaktivieren. Die Option muss jedoch vor der tatsächlich auszuführenden Aktion (Installieren, Entfernen oder Aktualisieren) angegeben werden, wie in

zypper --non-interactive install package_name

Mit dieser Option kann zypper auch in Skripten und Cron-Aufträgen verwendet werden.

Wenn Sie das entsprechende Quellpaket eines Pakets installieren möchten, verwenden Sie

zypper source-install package_name

Mit diesem Kommando installieren Sie auch die Build-Abhängigkeiten des angegebenen Pakets. Wenn Sie dies nicht wünschen, fügen Sie wie folgt den Schalter --no-build-deps hinzu:

zypper source-install --no-build-deps package_name
  

Natürlich funktioniert dies nur, wenn das Repository mit den Quellpaketen zu Ihrer Repository-Liste hinzugefügt wurde. Weitere Informationen über das Hinzufügen von Repositories finden Sie in Abschnitt 7.1.4, „Verwalten von Repositories“.

Aktualisieren von Software mit zypper

zypper bietet zwei Methoden der Softwareaktualisierung. Wenn Sie alle offiziell verfügbaren Patches in Ihr System integrieren möchten, führen Sie einfach folgendes Kommando aus:

zypper update

In diesem Fall werden alle in Ihren Repositories vorhandenen Patches auf Relevanz überprüft und bei Bedarf installiert.

Wenn ein Repository neue Pakete enthält, aber keine Patches zur Verfügung stellt, zeigt zypper update keinerlei Wirkung. Um all diese Pakete zu aktualisieren, müssen Sie angeben, dass Aktualisierungen vom Typ Paket installiert werden sollen:

zypper update -t package

Um einzelne Pakete zu aktualisieren, verwenden Sie das Installationskommando:

zypper install package_name

Mit dem Kommando kann eine Liste mit allen neu verfügbaren Paketen abgerufen werden.

zypper list-updates -t package

Verwalten von Repositories

Sämtliche Installations- und Update-Kommandos von zypper sind von der Liste der Repositories abhängig, die zypper bekannt sind. Um alle dem System bekannten Repositories aufzulisten, verwenden Sie das Kommando:

zypper repos

Das Ergebnis ist der folgenden Ausgabe ähnlich:


# | Enabled | Refresh | Type  | Alias             | Name
--+---------+---------+-------+-------------------+-------------------
1 | Yes     | Yes     | yast2 | openSUSE-DVD 11.0 | openSUSE-DVD 11.0
2 | Yes     | No      | yast2 | Main (OSS)        | Main (OSS)
3 | Yes     | No      | yast2 | Main (Non-OSS)    | Main (Non-OSS)

Wenn ein Repository von der Liste entfernt werden soll, verwenden Sie das Kommando zypper renamerepo zusammen mit dem Alias des zu löschenden Repository. Zum Entfernen des Haupt-Repository (nicht-OSS) aus dem Beispiel, verwenden Sie das folgende Kommando:

zypper renamerepo Main Repository (Non-OSS)

Zum Hinzufügen eines Repository, führen Sie folgendes aus:

zypper addrepo URI Alias

URI kann entweder ein Internet-Repository (eine Liste der verfügbaren Repositories finden Sie unter http://en.opensuse.org/Additional_YaST_Package_Repositories), ein Verzeichnis oder eine CD oder DVD sein. Der Alias ist ein Kürzel und eine eindeutige Kennung für das Repository. Sie können ihn frei wählen, vorausgesetzt, er ist eindeutig. zypper gibt eine Warnung aus, wenn Sie einen Alias angeben, der bereits verwendet wird.

Abfragen

Verschiedene Abfragekommandos wie search, info oder what-provides stehen zur Verfügung.

search funktioniert für Paketnamen und Anzeigestatusinformation (S) in der ersten Spalte der Ausgabe.

info mit einem Paketnamen als Argument zeigt ausführliche Informationen über ein Paket an.

Das what-provides-Paket gleicht dem rpm -q --whatprovides-Paket, aber rpm ist nur für Abfragen der RPM-Datenbank (die Datenbank aller installierten Pakete) möglich. zypper informiert Sie auf der anderen Seite über Anbieter der Möglichkeit von einem beliebigen Repository, nicht nur von denen, die installiert sind.

Insbesondere für die Fehlersuche sind Schalter wie --plus-repo, --disable-repositories und --disable-system-resolvables verfügbar. Verwenden Sie sie, wenn Sie nur in einem Repository suchen möchten. Ausführliche Nutzungsinformationen erhalten Sie auf der zypper-man-Seite (man zypper).

Verwenden der zypper-Shell

Eventuell möchten Sie mehrere zypper-Kommandos nacheinander ausführen. Um zu verhindern, dass zypper für jedes zypper-Kommando alle Datenbanken neu einliest, kann zypper auch im Shell-Modus ausgeführt werden:

zypper shell

In der Shell brauchen Sie die zypper-Kommandos nur mit ihren jeweiligen Parametern einzugeben:

zypper> in zsh
...
zypper> exit

Die Kommandosausführung in der zypper-Shell ist in der Regel schneller, da alle relevanten Daten im Arbeitsspeicher verbleiben.

zypper unterstützt die readline-Bibliothek. Sie können daher in der zypper-Shell sämtliche Kommandozeilenfunktionen verwenden, die auch in der Bash-Shell zur Verfügung stehen. zypper führt seine Kommando-History in der Datei ~/.zypper_history.

Weiterführende Informationen

Weitere Informationen zur Aktualisierung über die Kommandozeile erhalten Sie, wenn Sie zypper --help eingeben oder die man-Seite zypper(8) aufrufen. Beispiele und ausführliche Informationen finden Sie unter http://en.opensuse.org/Zypper/Usage.