Zypper/Anleitung
aus openSUSE, der freien Wissensdatenbank
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
| 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.
| 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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
| erde:~ # zypper shell
zypper> refresh zypper> lu -t package zypper> up kerry zypper> remove --type pattern sw_management zypper> exit erde:~ # |
|---|

