Zypper ist ein Kommandozeilen-Paketmanager für Installation, Aktualisierung und Löschung von Paketen sowie zum Verwalten von Repositorys. Damit können Sie Software per Fernzugriff oder mithilfe von Shell-Skripten verwalten.
Geben Sie für weitere Informationen zur Verwaltung von Software zypper help oder zypper help Kommandozeile ein oder rufen Sie die man-Seite zypper(8) auf. Unter http://en.opensuse.org/Zypper/Usage finden Sie eine vollständige und detaillierte Kommandoreferenz.
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 patch
Zusätzlich können Sie aus einer oder mehreren globalen Optionen wählen, indem Sie sie direkt vor dem Kommando eingeben. Beispielspielsweise führt --non-interactive das Kommando ohne Eingabeaufforderungen aus (und wendet automatisch die Standardantworten an):
zypper --non-interactive patch
Um die spezifischen Optionen für ein bestimmtes Kommando zu benutzen, geben Sie sie direkt nach dem Kommando ein. Beispielsweise werden mit --auto-agree-with-licenses alle erforderlichen Patches auf das System angewendet, ohne eine Bestätigung von Lizenzen anzufordern (sie werden automatisch akzeptiert):
zypper patch --auto-agree-with-licenses
Einige Kommandos erfordern ein oder mehrere Argumente. Bei der Verwendung des Installationskommandos z. B. müssen Sie angeben, welche Pakete zu installieren sind:
zypper install mplayer
Einige Optionen erfordern auch ein Argument. Das folgende Kommando listet alle bekannten Muster auf:
zypper search -t pattern
Sie können alle obigen Optionen kombinieren. Beispielsweise werden mit dem folgenden Kommando mplayer- und amarok-Pakete nur mithilfe des factory-Repositorys installiert und ausführlich angegeben:
zypper -v install --repo factory mplayer amarok
Die meisten Zypper-Kommandos besitzen eine dry-run-Option, die eine Simulation des angegebenen Kommandos ausführt. Sie kann für Tests verwendet werden.
zypper remove --dry-run MozillaFirefox
Verwenden Sie zur Installation oder Löschung von Paketen die folgenden Kommandos:
zypper install package zypper remove package
Zypper kennt verschiedene Möglichkeiten, Pakete für die Installations- und Löschkommandos anzugeben:
zypper in MozillaFirefox
zypper in mozilla:MozillaFirefox
Dabei ist mozilla der Alias des Repositorys, aus dem installiert werden soll.
Das folgende Kommando installiert alle Pakete, deren Name mit Moz
beginnt. Verwenden Sie diese Möglichkeit mit äußerster Umsicht, vor allem beim Entfernen von Paketen.
zypper in Moz*
Wenn Sie beispielsweise ein perl-Modul installieren möchten, ohne den Namen des Pakets zu kennen, sind Funktionen praktisch:
zypper in 'perl(Time::ParseDate)'
Zusammen mit einer Funktion können Sie eine Architektur (wie i586 oder x86_64) und/oder eine Version angeben. Der Version muss ein Operator vorangehen: < (kleiner als), <= (kleiner oder gleich), = (gleich>, >= (größer oder gleich), > (größer als).
zypper in 'firefox.x86_64' zypper in 'firefox>=3.5.3' zypper in 'firefox.x86_64>=3.5.3'
Sie können einen lokalen oder entfernten Pfad zu einem Paket angeben:
zypper in /tmp/install/MozillaFirefox.rpm zypper in http://download.opensuse.org/repositories/mozilla/SUSE_Factory/x86_64/MozillaFirefox-3.5.3-1.3.x86_64.rpm
Verwenden Sie zum gleichzeitigen Installieren und Entfernen von Paketen die Modifikatoren +/-:
zypper install emacs -vim zypper remove emacs +vim
Um zu vermeiden, dass der mit - beginnende Paketname als Kommandooption interpretiert wird, verwenden Sie ihn stets als das zweite Argument. Falls dies nicht möglich ist, stellen Sie ihm -- voran:
zypper install -emacs +vim # Wrong zypper install vim -emacs # Correct zypper install -- -emacs +vim # same as above zypper remove emacs +vim # same as above
Standardmäßig verlangt Zypper eine Bestätigung, bevor ein ausgewähltes Paket installiert oder entfernt wird oder wenn ein Problem auftritt. Mit der Option --non-interactive können Sie dieses Verhalten deaktivieren. Die Option muss jedoch vor dem tatsächlich auszuführenden Kommando (Installieren, Entfernen oder Patch) angegeben werden, wie im Folgenden:
zypper --non-interactive install package_name
Mit dieser Option kann Zypper auch in Skripten und Cron-Aufträgen verwendet werden.
ACHTUNG: Entfernen Sie keine obligatorischen Systempakete.
Entfernen Sie keine Pakete wie glibc, zypper, kernel oder ähnliche Pakete. Diese Pakete sind obligatorisch für das System. Wenn sie entfernt werden, kann das System instabil werden oder seine Funktion komplett einstellen.
Wenn Sie das entsprechende Quellpaket eines Pakets installieren möchten, verwenden Sie:
zypper source-install package_name
Dieses Kommando installiert auch die Build-Abhängigkeiten des angegebenen Pakets. Wenn Sie dies nicht wünschen, fügen Sie den Schalter -D hinzu. Um nur die Build-Abhängigkeiten zu installieren, verwenden Sie -d.
zypper source-install -d package_name # source package only zypper source-install -D package_name # build dependencies only
Natürlich gelingt dies nur, wenn das Repository mit den Quellpaketen in Ihrer Repository-Liste aktiviert ist (es wird standardmäßig hinzugefügt, aber nicht aktiviert). Details zur Repository-Verwaltung finden Sie unter Abschnitt 7.1.4, Verwalten von Repositorys mit Zypper.
Eine Liste aller Quellpakete, die in Ihren Repositorys verfügbar sind, können Sie wie folgt abrufen:
zypper search -t srcpackage
Wenn Sie prüfen möchten, ob alle Abhängigkeiten noch erfüllt sind, und fehlende Abhängigkeiten reparieren möchten, verwenden Sie:
zypper verify
Zusätzlich zu Abhängigkeiten, die erfüllt sein müssen, empfehlen
einige Pakete andere Pakete. Diese empfohlenen Pakete werden installiert, wenn sie aktuell verfügbar sind. Falls empfohlene Pakete erst nach der Installation des empfehlenden Pakets (durch Hinzufügen zusätzlicher Pakete) zur Verfügung steht, verwenden Sie das folgende Kommando:
zypper install-new-recommends
Es gibt drei verschiedene Möglichkeiten, Software mithilfe von Zypper zu installieren: durch Installation von Patches, durch Installation einer neuen Version eines Pakets oder durch Aktualisieren der kompletten Distribution. Letzters wird mit dem Kommando zypper dist-upgrade erreicht, das in Abschnitt 14.1, Upgrade des Systems behandelt wird.
Um alle offiziell herausgegebenen Patches für Ihr System zu installieren, führen Sie einfach Folgendes aus:
zypper patch
In diesem Fall werden alle in Ihren Repositorys vorhandenen Patches auf Relevanz überprüft und bei Bedarf installiert. Das obige Kommando ist alles, was Sie brauchen, um sie bei Bedarf anzuwenden.
Zypper kennt drei unterschiedliche Kommandos, um die Verfügbarkeit von Patches abzufragen:
Listet die Anzahl der benötigten Patches auf (Patches, die für Ihr System gelten, aber noch nicht installiert sind)
~ # zypper patch-check Loading repository data... Reading installed packages... 5 patches needed (1 security patch)
Listet alle benötigten Patches auf (Patches, die für Ihr System gelten, aber noch nicht installiert sind)
~ # zypper list-updates Loading repository data... Reading installed packages... S | Repository | Name | Current | Available | Arch --+------------+-------------------------------+---------+------------+------- v | Updates | update-test-interactive | 0-2.35 | 0-9999.1.2 | noarch v | Updates | update-test-optional | 0-2.35 | 0-9999.1.2 | noarch v | Updates | update-test-reboot-needed | 0-2.35 | 0-9999.1.2 | noarch v | Updates | update-test-relogin-suggested | 0-2.35 | 0-9999.1.2 | noarch v | Updates | update-test-security | 0-2.35 | 0-9999.1.2 | noarch
Listet alle für openSUSE verfügbaren Patches auf, unabhängig davon, ob sie bereits installiert sind oder für Ihre Installation gelten.
Wenn ein Repository neue Pakete enthält, aber keine Patches zur Verfügung stellt, zeigt zypper patch keinerlei Wirkung. Verwenden Sie zum Aktualisieren aller installierten Pakete mit neueren verfügbaren Versionen:
zypper update
Zum Aktualisieren einzelner Pakete geben Sie das Paket mit dem Aktualisierungs- oder Aktualisierungskommando an:
zypper update package zypper install package
Mit dem Kommando kann eine Liste mit allen neu verfügbaren Paketen abgerufen werden:
zypper list-updates
HINWEIS: Unterschiede zwischen zypper update und zypper dist-upgrade
Wählen Sie zypper update, um Pakete auf neuere Versionen zu aktualisieren, die für Ihre Produktversion verfügbar sind, und die Systemintegrität beizubehalten. zypper update richtet sich nach den folgenden Regeln:
Um Ihre Installation auf eine neue Produktversion zu aktualisieren, verwenden Sie zypper dist-upgrade mit den erforderlichen Repositorys (Details siehe in Abschnitt 7.1.4, Verwalten von Repositorys mit Zypper). Dieses Kommando stellt sicher, dass alle Pakete aus den aktuell aktivierten Repositorys installiert werden. Diese Regel ist erzwungen, d. h. Pakete könnten einen anderen Hersteller oder eine andere Architektur haben oder sogar zurückgestuft werden. Alle Pakete, die nach der Aktualisierung unerfüllte Abhängigkeiten aufweisen, werden deinstalliert.
Sämtliche Installations- und Patch-Kommandos von Zypper sind von der Liste der bekannten Repositorys abhängig. Um alle dem System bekannten Repositorys aufzulisten, verwenden Sie das Kommando:
zypper repos
Das Ergebnis ist der folgenden Ausgabe ähnlich:
# | Alias | Name | Enabled | Refresh --+-----------------------+-----------------------+---------+-------- 1 | Updates | Updates | Yes | Yes 2 | openSUSE 11.2-0 | openSUSE 11.2-0 | No | No 3 | openSUSE-11.2-Debug | openSUSE-11.2-Debug | No | Yes 4 | openSUSE-11.2-Non-Oss | openSUSE-11.2-Non-Oss | Yes | Yes 5 | openSUSE-11.2-Oss | openSUSE-11.2-Oss | Yes | Yes 6 | openSUSE-11.2-Source | openSUSE-11.2-Source | No | Yes
Bei der Angabe von Repositorys kann in verschiedenen Kommandos ein Alias, URI oder eine Repository-Nummber aus der Ausgabe des Kommandos zypper repos verwendet werden. Beachten Sie jedoch, dass sich Nummern nach dem Bearbeiten der Repository-Liste ändern können. Der Alias ändert sich nie von alleine.
Standardmäßig werden Details wie URI oder Priorität des Repositorys nicht angezeigt. Verwenden Sie das folgende Kommando, um alle Details aufzulisten:
Zum Hinzufügen eines Repository, führen Sie Folgendes aus:
zypper addrepo URI Alias
URI kann ein Internet-Repository, eine Netzwerkressource, ein Verzeichnis oder eine CD oder DVD sein (für Details siehe http://en.opensuse.org/Libzypp/URI). 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. Um das Arbeiten mit Repositorys bequemer zu gestalten, verwenden Sie kurze und einprägsame Aliasbezeichnungen.
Wenn ein Repository von der Liste entfernt werden soll, verwenden Sie das Kommando zypper removerepo zusammen mit dem Alias oder der Nummer des zu löschenden Repositorys. Zum Entfernen des 3. Eintrags aus dem Beispiel verwenden Sie das folgende Kommando:
zypper removerepo 3
Aktivieren oder deaktivieren von Repositorys mit zypper modifyrepo. Mit diesem Kommando können Sie auch die Eigenschaften des Repositorys (z. B. Aktualisierungsverhalten, Name oder Priorität) ändern. Das folgende Kommando aktiviert den Repositorynamen updates
, aktiviert die automatische Aktualisierung und stellt seine Priorität auf 20 ein:
zypper mr -er -p 20 'updates'
Das Ändern von Repositorys ist nicht auf ein einziges Repository beschränkt – Sie können auch Gruppen bearbeiten:
Zum Umbenennen eines Repository-Alias verwenden Sie das Kommando renamerepo. Das folgende Beispiel ändert den Alias von Mozilla Firefox
in firefox
:
zypper renamerepo 'Mozilla Firefox' firefox
Zypper bietet zahlreiche Methoden zur Abfrage von Repositorys oder Paketen. Verwenden Sie die folgenden Kommandos, um eine Liste aller verfügbaren Produkte, Muster, Pakete oder Patches zu erhalten:
zypper products zypper patterns zypper packages zypper patches
Zur Abfrage aller Repositorys auf bestimmte Pakete verwenden Sie search. Es gilt für Paketnamen, Funktionen oder optional Paketzusammenfassungen und -beschreibungen. Verwenden der Platzhalterzeichen * und ? mit dem Suchbegriff ist erlaubt. Standardmäßig unterscheidet der Suchvorgang keine Groß- und Kleinschreibung.
zypper se firefox # simple search for "firefox" zypper se *fire* # using wildcards zypper se -d fire # also search in package descriptions and summaries zypper se -u firefix # only display packages not already installed
Verwenden Sie zur Suche nach Paketen, die eine spezielle Funktion bieten, das Kommando what-provides. Wenn Sie beispielsweise wissen möchten, welches Paket das perl-Modul SVN::Core bereitstellt, verwenden Sie das folgende Kommando:
zypper what-provides 'perl(SVN::Core)'
Um einzelne Pakete abzufragen, verwenden Sie info mit einem exakten Paketnamen als Argument. Damit werden detaillierte Informationen zu einem Paket angezeigt. Verwenden Sie die Optionen --requires und --recommends, um auch anzuzeigen, was das Paket erfordert/empfiehlt:
zypper info --requires MozillaFirefox
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.