Zypper/Anleitung

aus openSUSE, der freien Wissensdatenbank

Inhaltsverzeichnis

Zypper kann (zur Zeit) nur als Root ausgeführt werden, lediglich die Paketinformationen können auch als unprivilegierter Benutzer angezeigt werden.

Konfigurationsdateien

Da Zypper auf die libzypp zurückgreift, werden alle Einstellungen und Metadaten unterhalb von /var/lib/zypp gespeichert. Alle Informationen werden in xml-Dateien gespeichert, sollten aber bevorzugt über Zypper oder YaST verändert werden. Zypper teilt die Informationen über die Installationsquellen mit der Paketverwaltung von YaST, da dieses ebenfalls auf die libzypp zurückgreift. Informationen über die Grundinformationen über die eingebundenen Paketdepots finden Sie unter /etc/zypp/repos.d, wo sich auch einfach eigene .repo-Dateien ablegen können.

Paketdepots

Zypper kann mit den beiden Depotarten YaST2 und RPM MetaData (auch Yum genannt) umgehen, wobei eine Paketquelle in der Zypper-Terminologie Service (Dienst) genannt wird. Ersteres erkennen Sie an einem Verzeichnis namens media.1 im Depot, dass zweite enthält ein Verzeichnis namens repodata. Die Basisadressen zum Hinzufügen von Depots beziehen sich jeweils auf das Verzeichnis, in welchem sich jeweils das kennzeichnende Verzeichnis befindet.


Von Hand einbinden

Um ein Depot einzubinden benötigen Sie zwei Informationen: Zum einen den Depottyp (also entweder YaST oder Yum) und zum anderen die Basisadresse des Depots. Zusätzlich können Sie noch einen Alias, eine eindeutige Bezeichnung vergeben, welche bei Nichtangabe aus einem Zeitstempel besteht. Das Zypper-Kommando zum Hinzufügen von Paketdepots lautet analog zur Zypper-Terminologie service-add, oder kurz sa, bzw. ab openSUSE 10.3 addrepo oder kurz ar. Im folgenden Beispiel werden die Basisdepots von openSUSE 10.2 und 10.3 verwendet, ein mal als YaST-Depot ohne Alias-Angabe und das andere mal als Yum/repomd-Depot mit Befehlskürzel und Alias. Wird kein Depottyp angegeben, versucht Zypper selbständig herauszufinden, um welchen es sich handelt.

Kommando als normaler Nutzer

erde:~ # zypper service-add --type YaST http://download.opensuse.org/distribution/10.2/repo/oss/ erde:~ # zypper sa -t YUM http://download.opensuse.org/distribution/10.2/repo/oss/suse/ Basisdepot 10.2 erde:~ # zypper addrepo --type YaST http://download.opensuse.org/distribution/10.3/repo/oss/ erde:~ # zypper ar -t YUM http://download.opensuse.org/distribution/10.3/repo/oss/suse/ Basisdepot 10.3

Es können noch weitere Optionen übergeben werden:

  • --disabled bzw. -d
    Fügt den Dienst hinzu und deaktiviert ihn.
  • --no-refresh bzw -n
    Der Dienst wird nicht automatisch aktualisiert.


Aus Datei einlesen

Neben der Möglichkeit, die Informationen direkt anzugeben, können diese auch aus einer Datei eingelesen werden, welche sich auch auf einem entfernten Rechner befinden kann. Für service-add bzw. addrepo existiert dafür die Option --repo (bzw. -r). Die Datei muss mindestens die Basisadresse enthalten und einen in eckige Klammern gesetzten Alias, die Angabe des Depottyps ist auch vorteilhaft. Zusätzlich ist es möglich, die im vorherigen Abschnitt vorgestellten Optionen zu verwenden. Diese Dateien werden unter /etc/zypp/repos.d abgelegt, wo Sie auch selber solche Dateien erstellen können. Beispieldateiinhalt:

[Apache]
type=rpm-md <-- alias Yum
baseurl=http://software.opensuse.org/download/repositories/Apache/openSUSE_10.2/

Solche Dateien finden sie bspw. im Build Service; sie enthalten dort auch noch weitere Angaben für andere Paketverwalter.

Kommando als normaler Nutzer

erde:~ # zypper service-add --repo http://software.opensuse.org/download/Apache/openSUSE_10.2/Apache.repo erde:~ # zypper addrepo --repo http://software.opensuse.org/download/Apache/openSUSE_10.3/Apache.repo


Build Service

Im openSUSE Build Service enthält jedes Depot eine eigene .repo-Datei mit den notwendigen Informationen. Diese Datei können sie, wie im vorherigen Abschnitt vorgestellt, einbinden.


Eingebundene Dienste anzeigen

Die eingebundenen Installationsquellen können Sie sich mit service-list (bzw. sl) und ab openSUSE 10.3 mit repos (bzw. lr) anzeigen lassen. Es wird eine tabellarische Übersicht ausgegeben, welche den Status, den Namen/Alias und die Basisadresse für jeden Dienst enthält.

Kommando als normaler Nutzer

erde:~ # zypper service-list erde:~ # zypper repos

Eingebundene Dienste umbenennen

Sie können den Alias/Namen eines eingebunden Dienstes ändern. Das dafür vorgesehene Kommando service-rename (bzw. sr), ab openSUSE 10.3 renamerepo (bzw. nr), benötigt dafür entweder den bisherigen Alias oder die Basisadresse und einen neuen Alias.

Kommando als normaler Nutzer

erde:~ # zypper service-rename Base Basisdepot erde:~ # zypper renamerepo http://download.opensuse.org/distribution/10.3/repo/oss/ Basisdepot


Eingebundene Dienste entfernen

Um einen eingebundenen Dienst zu entfernen gibt es das Kommando service-delete (bzw. sd), bzw. ab openSUSE 10.3 removerepo (kurz rr). Diese benötigt entweder den Alias oder die Basisadresse des zu entfernenden Dienstes.

Kommando als normaler Nutzer

erde:~ # zypper service-delete Basisdepot erde:~ # zypper removerepo http://download.opensuse.org/distribution/10.3/repo/oss/


Dienste/Paketquellen aktualisieren

Damit Zypper über die aktuellen Paketinformationen verfügt, müssen die eingebundenen Dienste von Zeit zu Zeit aufgefrischt werden. Dafür gibt es das Kommando refresh (bzw. ref). Standardmäßig werden dabei nur Patches angezeigt. Mit der Option --type (bzw. -t) können Sie andere Auflösungsziele angeben, bspw. package, womit alle installierten angezeigt würden, für die eine neuere Version vorhanden ist.

Kommando als normaler Nutzer erde:~ # zypper refresh


Paketverwaltungskommandos

Konventionen

Auflösbare/Resolvables

Zypper kann die Kommandos zur Paketverwaltung auf bestimmte Auflösungen beschränken. Für die einzelnen Kommandos sind Standards vorgegeben, welche sich mit --type (bzw. -t) überschreiben lassen. Mögliche Werte sind:

  • package
    Alle Pakete, inklusive Patches und Delta-Pakete.
  • patch
    Aktualisierung für ein Paket, welche zusätzliche Skripte und Nachrichten enthalten kann und von einem speziellen Aktualisierungsserver angeboten wird.
  • pattern
    Schemata, eine Gruppe von Paketen.
  • language
    Gruppe von Paketen mit Sprachunterstützung.
  • product
    Gruppe von Paketen die zur Installation eines Produktes nötig sind.


Informationen anzeigen und Suche

info und patch-info

Mit info (bzw. if) lassen sich Informationen über Pakete ausgeben, wobei mehrere Pakete durch Leerzeichen getrennt angegeben werden können. patch-info funktioniert analog, bezieht sich jedoch auf Patches.

Kommando als normaler Nutzer erde:~ # zypper info kernel-default kernel-source


patch-check und patches

Mit patch-check (bzw. pchk) lässt sich die Verfügbarkeit neuer Patches überprüfen, wobei nur angezeigt wird, wie viele Patches verfügbar sind und wie viele davon Sicherheits-Patches sind, zusätzlich wir ein Exit-Kode ausgegeben, welcher entweder 0 = keine Patches vorhanden, 1 = keine Sicherheits-Patches vorhanden oder 2 = Sicherheits-Patches vorhanden sein kein. patches (bzw. pch) wiederum zeigt ausführlich die verfügbaren Patches, ihren Status und ihre Kategorie an.

Kommando als normaler Nutzer

erde:~ # zypper patch-check erde:~ # zypper patches


list-updates

Mit list-updates (bzw. lu) werden die vorhandenen Aktualisierungsmöglichkeiten angegeben. Wird kein Auflösungstyp angegeben bezieht es sich nur auf Patches. Wollen Sie alle Pakete anzeigen lassen, für die neuere Versionen existieren, müssen Sie den Typ package angeben. Da bis auf die SUSE-eigenen Aktualisierungs- und Patch-Depots bisher kein anderes Depot Patches verwendet, müssen Sie, bspw. wenn Sie andere Quellen wie Packman eingebunden haben, immer den Typ package angeben, um aktuellere Versionen angezeigt zu bekommen.

Kommando als normaler Nutzer

erde:~ # zypper list-updates erde:~ # zypper lu --type package


search

Mit search (bzw. se) können Sie die Paketdepots durchsuchen. Standardmäßig werden dabei nur die Paketnamen durchsucht, erst mit der Option -d werden auch die Zusammenfassung und die Beschreibung in die Suche einbezogen. Bei der Suche können Platzhalter verwendet werden, das Sternchen (*) kann den Platz für ganze Zeichenketten frei halten, dass Fragezeichen (?) für einzelne Zeichen. Verfügbare Suchoptionen:

  • --match-all
    Suche nach Treffern, die alle Suchzeichenketten enthalten (Standard).
  • --match-any
    Suche nach Treffern, die irgendeine der Suchzeichenketten enthalten.
  • --match-substrings
    Die Treffer können einzelne Silben/Wortteile sein (Standard).
  • --match-words
    Die Treffer dürfen nur ganze Wörter sein.
  • --match-exact
    Sucht nach genau dem Angegebenen.
  • -d, --search-descriptions
    Durchsuche auch die Zusammenfassungen und Beschreibungen.
  • -i, --installed-only
    Zeige nur die Ergebnisse schon installierter Auflösungen/Resolvables.
  • -u, --uninstalled-only
    Zeige nur die Ergebnisse nicht installierter Auflösungen/Resolvables.
  • -t, --type [Auflösung/Resolvable]
    Suche nur nach Auflösungen/Resolvables des angegebenen Typs.
Kommando als normaler Nutzer

erde:~ # zypper search kernel erde:~ # zypper se -d kernel-d*t erde:~ # zypper se -i kernel-sour?e erde:~ # zypper se --match-exact fixes and improvements


Installieren, Entfernen und Aktualisieren

install

Mit install (bzw. in) können Pakete und Patches oder ganze Gruppen wie Schemata installiert werden. Standardmäßig bezieht sich das Kommando auf Pakete, über die Option --type können auch andere Auflösbare/Resolvables angegeben werden. Mehrere Pakete, Patches oder Gruppen können durch Leerzeichen getrennt angegeben werden.

Kommando als normaler Nutzer

erde:~ # zypper install kerry erde:~ # zypper in --type pattern sw_management


remove

Mit remove (bzw. rm) können Pakete und Patches oder ganze Gruppen wie Schemata deinstalliert werden. Standardmäßig bezieht sich das Kommando auf Pakete, über die Option --type können auch andere Auflösbare/Resolvables angegeben werden. Mehrere Pakete, Patches oder Gruppen können durch Leerzeichen getrennt angegeben werden.

Kommando als normaler Nutzer

erde:~ # zypper remove kerry erde:~ # zypper rm --type pattern sw_management


update

Mit update (bzw. up) können Pakete und Patches oder ganze Gruppen wie Schemata aktualisiert werden. Standardmäßig bezieht sich das Kommando auf Patches, über die Option --type können auch andere Auflösbare/Resolvables, wie package für Pakete, angegeben werden. Mehrere Pakete, Patches oder Gruppen können durch Leerzeichen getrennt angegeben werden. Mit diesem Kommando können Sie auch das komplette System aktualisieren, indem Sie lediglich package als Typ angeben und sonst nichts weiter.

Kommando als normaler Nutzer

erde:~ # zypper update MozillaFirefox erde:~ # zypper up --type pattern sw_management erde:~ # zypper up --type package

Die Zypper-Shell

Zypper enthält eine integrierte Kommandozeile, welche sich zur Zeit aber noch in einem frühen Entwicklungsstadium befindet. Sie erreichen Sie mit zypper shell bzw. zypper sh. Verlassen können Sie sie mit exit.

Kommando als normaler Nutzer erde:~ # zypper shell

zypper> refresh zypper> lu -t package zypper> up kerry zypper> remove --type pattern sw_management zypper> exit erde:~ #