Home Wiki > SDB:Zypper benutzen
Sign up | Login

SDB:Zypper benutzen

tagline: Aus openSUSE

Dieser Artikel beschreibt die Nutzung von Zypper, dem Kommandozeilenpaketverwalter, der die Libzypp-Bibliothek nutzt. Er enthält ergänzende Informationen zu Zyppers manual-Seite (man zypper). Was Sie hier finden, sollten Sie auch in der man-Seite finden, und andersherum.
Version: 13.2In diesem Artikel geht es um zypper 1.11.23, welches in openSUSE 13.2 erschien. Für andere Versionen schau unter Zypper-Versionen.
Getestet mit openSUSE Empfohlene Artikel Verwandte Artikel
Icon-checked.png

Icon-manual.png Icon-help.png

Kurzreferenz


Dies sind die Dinge, die Sie wahrscheinlich am häufigsten nutzen.

zypper # um eine Liste der verfügbaren globalen Optionen und Kommandos anzuzeigen.
zypper help search # um die Hilfe für das Kommando search anzuzeigen.
zypper lp # um zu sehen, welche Patch-Aktualisierung benötigt werden.
zypper patch # um die nötigen Patches anzuwenden.
zypper se sqlite # um nach sqlite zu suchen.
zypper rm sqlite2 # um sqlite2 zu entfernen.
zypper in sqlite3 # um sqlite3 zu installieren.
zypper in yast* # um alle Pakete zu installieren, die auf 'yast*' zutreffen.
zypper up # um alle installierten Pakete wo möglich mit neueren Versionen zu aktualisieren.


Wenn Du mit anderen Paket-Managern wie as apt, yum, emerge etc. von anderen Linux-Distributionen vertraut bist, schau Dir diesen Link an, um zu vergleichen/ die Unterschiede zwischen ihnen und zypper zu sehen.

Spickzettel

Hier auf dieser Seite findest Du die Informationen aufgelistet, aber zusammengefasst ins Format eines Spickzettels. Es beinhaltet auch einige Referenzen, die aus den Manpages stammen. Es wird empfohlen diese nach der Analyse der Informationen von hier zu verwenden.

Erste Seite A4
Zweite Seite A4
Erste Seite Brief
Zweite Seite Brief

Allgemeine Nutzung

Die allgemeine Syntax von zypper ist:

# zypper [globale Optionen] Kommando [Kommandooptionen] [Argumente] ...

Die von eckigen Klammern umschlossenen Komponenten sind nicht notwendig, weshalb der einfachste Weg, Zypper auszuführen, das Eingeben seines Namens gefolgt von einem Kommando ist. Zum Beispiel, um nötige Patches im System einzuspielen:

# zypper patch

Um Hilfe zum Patch-Kommando zu bekommen:

# zypper help patch

Zusätzlich können Sie eine oder mehrere globale Optionen angeben, indem Sie sie vor dem Kommando einfügen: (führe das Kommando aus, aber frage mich nach nichts, entscheide selbst)

# zypper --non-interactive patch

Um Optionen des verwendeten Kommando zu nutzen, geben Sie sie direkt nach dem Kommando ein: (spiele benötigte Patches in das System ein, aber frage mich nicht danach, irgendeine Lizenz zu bestätigen, ich habe sie schon alle gelesen)

# zypper patch --auto-agree-with-licenses

Einige der Kommandos benötigen ein oder mehrere Argumente: (installiere oder aktualisiere das Paket mplayer)

# zypper install mplayer

Einige der Optionen benötigen ebenfalls ein Argument: (suche nach Schemata)

# zypper search -t pattern

Alle obigen Dinge kombiniert: (installiere mplayer und amarok, nutze nur das factory-Paketdepot, sei gesprächig)

# zypper -v install --repo factory mplayer amarok


Eingabeaufforderungen an den Nutzer

Wann immer Zypper eine Eingabe von ihnen erwartet, listet es mögliche Antworten neben dem Aufforderungstext auf. Um die Standardantwort auszuwählen, drücken Sie einfach die <Eingabetaste> (die Standardantwort wird in Großbuchstaben angegeben (mit Ausnahme von nicht-ASCII-Zeichen)). Einige Eingabeaufforderungen bieten Außerdem eine Hilfe an, in diesem Fall wird ein Fragezeichen '?' als mögliche Antwort aufgeführt. Um Zypper die Standardantworten ohne Nutzerinteraktion übernehmen zu lassen, verwenden Sie die globale Option: --non-interactive.


Vokabular


  • repository/Paketdepot - lokales oder entferntes Verzeichnis, das Pakete und verschiedene Paketinformationen (Paketmetadaten) enthält. Paketdepots waren bisher unter den Namen installation sources/Installationsquellen , services/Dienste oder catalogs/Kataloge bekannt.
  • Alias - Paketdepot-Alias ist eine Kurzversion des Depotnamens zur Nutzung in Kommandos oder Optionen für die Handhabung von Paketdepots, wie removerepo oder --repo.
  • package/Paket - Software-Paket (RPM-Paket, Quellpaket). Patches, patterns/Schemata und products/Produkte werden im Allgemeinen auch als unterschiedliche Typen von Paketen angesehen.
  • Patch - repräsentiert ein Paket oder eine Gruppe von Paketen, die benötigt werden, um eine Aktualisierung zu installieren (meistens eine Fehlerbehebung).
  • pattern/Schema - repräsentiert eine Gruppe von Paketen. Ein Schema HTTP Server würde beispielsweise die Abhängigkeiten definieren, die die Installation aller Pakete auslösen, die zum Betrieb und zur Konfiguration eines HTTP-Servers nötig sind, wenn das Schema installiert wird.
  • product/Produkt - repräsentiert das gesamte Produkt (bspw. 'openSUSE 11.1').


Kommandos


zypper bietet eine Anzahl von Kommandos, die in die folgenden Kategorien eingeordnet werden können:

  • Paketdepotverwaltung
    refresh, repos, addrepo, removerepo, modifyrepo, namerepo
    refresh-services, services, addservice, removeservice, modifyservice
  • Paketverwaltung
    install, remove, source-install
  • Aktualisierung
    search, info, what-provides, list-updates, patch-check, patches, packages, patterns, products
  • Sperren
    locks, addlock, removelock, cleanlocks
  • Werkzeuge
    verify, install-new-recommends
  • Anderes
    help, licenses, versioncmp, targetos


Hilfe anzeigen

Zuerst einmal ist es gut zu wissen, wo man Hilfe findet. Um eine allgemeine Hilfe anzuzeigen (Liste von Kommandos und globale Optionen), tippen Sie einfach zypper ohne Optionen oder Argumente ein. Um die Hilfe für ein bestimmtes Kommando anzuzeigen, nutzen Sie:

# zypper help [Kommando]


zypper -h [Kommando] und zypper [Kommando] --help und zypper [Kommando] -h sind aus Bequemlichkeitsgründen auch möglich.

Paketdepotverwaltung

Sie können existierende Paketdepots über ihre Nummer aus der Liste von zypper lr, ihren Alias oder ihre URI angeben. Wenn Sie die Nummern nutzen, prüfen Sie vorher immer erst zypper lr, da sich die Nummern nach Änderungen an den Paketdepots ändern können.


Definierte Paketdepots anzeigen

repos oder lr

Beispielausgabe:

$ zypper lr
# | Alias                 | Name                  | Aktiviert | Aktualisieren
--+-----------------------+-----------------------+-----------+--------------
1 | packman               | Packman 11.4          | Ja        | Nein
2 | fate                  | fate                  | Nein      | Nein
3 | openSUSE-11.4-Updates | Updates für 11.4      | Ja        | Ja 
4 | repo-oss              | openSUSE-11.4-Oss     | Ja        | Nein
5 | repo-non-oss          | openSUSE-11.4-Non-Oss | Ja        | Nein
6 | repo-debug            | openSUSE-11.4-Debug   | Nein      | Nein

Andere Beispiele:

zypper lr -u # um auch die Depot-URI in die Tabelle einzubinden.
zypper lr -d # um verschiedene andere Depoteigenschaften in die Tabelle einzubinden.
zypper lr -P # um außerdem die Depotpriorität einzubinden und die Liste danach zu sortieren.
zypper lr -e meine # exportiert alle Depotdefinitionen in die Datei namens 'meine.repo'


Paketdepots hinzufügen

addrepo oder ar

Bevor überhaupt irgendein Paket installiert werden kann, muss mindestens ein Paketdepot definiert sein. Um ein Paketdepot hinzuzufügen, nutzen Sie das Kommando addrepo:

Beispielausgabe:

Repository 'vlc' wird hinzugefügt [fertig]
Repository 'vlc' erfolgreich hinzugefügt
Aktiviert: Ja
Autoaktualisierung: Nein
URI: http://download.videolan.org/pub/vlc/SuSE/11.4

Andere Beispiele:

zypper ar http://download.opensuse.org/repositories/X11:/XGL/openSUSE_11.4/X11:XGL.repo # über eine .repo-Datei
zypper ar -c ftp://irgendein.download.seite meinalias # teste das Paketdepot vor dem Hinzufügen
zypper ar mein/verzeichnis/mit/rpms lokal # fügen Sie ihr lokales Verzeichnis mit rpm-Dateien als Depot hinzu


Paketdepots aktualisieren

refresh oder ref

Nach dem Hinzufügen eines Paketdepots oder wenn Paketdepots veraltet sind, müssen sie aktualisiert/refreshed werden. Dies heißt, dass Paketmetadaten daraus heruntergeladen werden und das die Daten zum schnellen Lesen in den .solv-Zwischenspeicher verarbeitet werden.

$ zypper refresh
Metadaten von Repository 'packman' werden abgerufen [fertig]
Zwischenspeicher für Repository 'packman' wird erzeugt [fertig]
Metadaten von Repository 'vlc' werden abgerufen [fertig]
Zwischenspeicher für Repository 'vlc' wird erzeugt [fertig]
Metadaten von Repository 'fate' werden abgerufen [fertig]
Zwischenspeicher für Repository 'fate' wird erzeugt [fertig]
Repository 'openSUSE-11.4-Oss' ist aktuell.
Repository 'Updates für 11.4' ist aktuell.
Alle Repositories wurden aktualisiert.

Wenn autorefresh/Autoaktualisierung für ein Paketdepot aktiviert ist, müssen Sie sich über das Auffrischen keine Gedanken machen, es passiert automatisch wenn nötig. Nichtsdestotrotz bevorzugen es einige Leute, die Kontrolle über den Zeitpunkt der Auffrischung zu haben (bspw. um das Warten auf die Auffrischung zu vermeiden, wenn sie einfach nur 'zypper info krusader' sehen wollen), weshalb Sie die automatische Auffrischung deaktivieren.
Siehe man zypper für weitere Details.

Andere Beispiele:

$ zypper ref packman main # Sie können auch angeben, welche Paketdepots aktualisiert werden sollen.
$ zypper ref -f upd # Aktualisierung für das Paketdepot 'upd' erzwingen.


Paketdepots entfernen

removerepo oder rr

$ zypper rr vlc 1 23 foo
Repository '23' wurde nicht durch Alias, Nummer oder URI gefunden.
Repository 'foo' wurde nicht durch Alias, Nummer oder URI gefunden.
Repository 'repo-debug' wird entfernt [fertig]
Repository 'repo-debug' wurde entfernt.
Repository 'vlc' wird entfernt [fertig]
Repository 'vlc' wurde entfernt.

Paketdepots modifizieren

modifyrepo oder mr

Deaktiviere Paketdepot #6:

$ zypper mr -d 6
Repository 'repo-debug' wurde erfolgreich deaktiviert.

Aktiviere automatische Auffrischung und Zwischenspeichern von RPM-Dateien für das Paketdepot 'packman' und setze seine Priorität auf 70:

$ zypper mr -rk -p 70 packman
Autoaktualisierung wurde für Repository 'packman' aktiviert.
Zwischenspeichern von RPM-Dateien wurde für Repository 'packman' aktiviert.
Die Priorität von Repository 'packman' wurde auf 70 gesetzt.

Deaktiviere das Zwischenspeichern von RPM-Dateien für alle Paketdepots:

$ zypper mr -Ka
Nichts zum Ändern für Repository 'local'.
Zwischenspeichern von RPM-Dateien wurde für Repository 'packman' deaktiviert.
Nichts zum Ändern für Repository 'fate'.
Nichts zum Ändern für Repository 'upd'.
Nichts zum Ändern für Repository 'repo-oss'.
Nichts zum Ändern für Repository 'repo-non-oss'.

Aktiviere das Zwischenspeichern von RPM-Dateien für alle Paketdepots

$ zypper mr -ka
Zwischenspeichern von RPM-Dateien wurde für Repository 'repo-non-oss' aktiviert.
Zwischenspeichern von RPM-Dateien wurde für Repository 'Main Repository (OSS)' aktiviert.
Zwischenspeichern von RPM-Dateien wurde für Repository 'Main Repository (NON-OSS)' aktiviert.
Zwischenspeichern von RPM-Dateien wurde für Repository 'openSUSE-11.4-Updates' aktiviert.

Paketdepots umbenennen

renamerepo oder nr

$ zypper nr 3 upd
Repository 'openSUSE-11.4-Updates' wurde zu 'upd' umbenannt.

Dieses Kommando ist zur Zeit nur in der Lange, den Alias des Depots umzubenennen. Wenn Sie den angezeigten Namen ändern möchten, werfen Sie einen Blick auf das Kommando mr.

Halten Sie die Aliase kurz und einfach, um sie leicht als Argumente für Kommandos und --repo Optionen nutzen zu können. Die Nutzung eines Alias ist sicherer als eine Depotnummer (da sich diese ändern kann und Sie leicht einen Fehler machen können) und einfacher zu nutzen als eine URI (da diese lang sind und Sie sich auf Kopieren und Einfügen verlassen müssen).

Paketdepots exportieren/importieren

repos --export oder lr -e

Sie können ihre komplette Depotliste in eine Datei exportieren und sie später daraus wieder importieren oder auf einer anderen Maschine nutzen.

$ zypper lr --export sicherungen/depots/bsp.repo
$ zypper ar sicherungen/depots/bsp.repo


Diensteverwaltung

Dienste sind 1 Level über den Paketdepots und dienen dazu die Paketdepots zu verwalten. Libzypp unterstützt momentan nur einen Typ von Diensten, den Repository Index Service (auch bekannt als RIS).

Einen Dienst hinzufügen

addservice oder as

Um einen Dienst hinzuzufügen, geben Sie addservice ein.

Beispiel:

<div class="shell"# zypper as -t RIS http://mewtwo.domain/ Mewtwo</div> Dienst 'Mewtwo' wurde erfolgreich hinzugefügt. </pre>

Einen Dienst aktualisieren

refresh-services oder refs

Als nächstes muss man, um einen Dienst hinzuzufügen, diesen aktualisieren um die Paketdepots, die er anbietet, einzurichten:

<div class="shell"# zypper refs</div>

Aktualisierung des Dienstes 'Mewtwo'.
Aktualisierung von Repository 'KDE:Extra' .......................................................[aktualisiert]
Aktualisierung von Repository 'repo-ati' ........................................................[aktualisiert]
Aktualisierung von Repository 'openSUSE-12.2-Debug' .............................................[aktualisiert]
Aktualisierung von Repository 'openSUSE-12.2-Update-Debug' ......................................[aktualisiert]
Aktualisierung von Repository 'openSUSE-12.2-Update-Debug-Non-Oss' ..............................[aktualisiert]
Aktualisierung von Repository 'repo-libdvdcss' ..................................................[aktualisiert]
Aktualisierung von Repository 'openSUSE-12.2-Oss' ...............................................[aktualisiert]
Aktualisierung von Repository 'packman' .........................................................[aktualisiert]
Aktualisierung von Repository 'openSUSE-12.2-Source' ............................................[aktualisiert]
Aktualisierung von Repository 'openSUSE-12.2-Update' ............................................[aktualisiert]
Aktualisierung von Repository 'openSUSE-12.2-Update-Non-Oss' ....................................[aktualisiert]
Aktualisierung von Repository 'security' ........................................................[aktualisiert]
Alle Dienste wurden aktualisiert.

Wenn der Dienst das erste Mal aktualisiert wird, müssen die Paketdepots durch den Befehl zypper mr -e -a aktiviert werden.

Einen Dienst löschen

removeservice oder rs

Ein Dienst kann mit dem Befehl rs gelöscht werden.

Beispiel: <div class="shell"# zypper rs Mewtwo</div>

Dienst 'Mewtwo' wird entfernt:
Dienst 'Mewtwo' wurde entfernt.

Paketverwaltung

Pakete auswählen

Es gibt verschiedene Wege über die Sie Pakete zum Installieren oder Entfernen auswählen können.

  • über Fähigkeitennamen
# zypper in eclipse
# zypper in qt
  • über Fähigkeitennamen und/oder Architektur und/oder Version
# zypper in 'zypper<0.12.10'
# zypper in zypper.i586=0.12.11
  • über den exakten Paketnamen (--name)
# zypper in -n ftp
  • über den exakten Paketnamen und das Paketdepot (impliziert --name)
# zypper in factory:zypper
  • über Paketnamen mit Platzhaltern
# zypper in yast*ftp*
  • über die Festlegung einer Paket-Datei .rpm package, die zu installieren ist. Der Pfad kann relativ oder festgelegt sein
# zypper in foo.rpm #Relativer Pfad
# zypper in /Pfad/zur/Installation/foo.rpm #Festgelegter Pfad


Pakete installieren

install oder in

Sie können Pakete über den Namen installieren...

$ zypper install git
Daten des Repositorys laden...
Installierte Pakete lesen...
Paketabhängigkeiten auflösen...

Die folgenden NEUEN Pakete werden installiert:
  subversion-perl sqlite3 perl-DBD-SQLite git-svn git-cvs git


Gesamtgröße des Downloads: 1,1 M. Nach der Operation werden zusätzlich 4,6 M belegt.
Fortfahren? [JA/nein]:
Paket subversion-perl-1.5.0-96.1.x86_64 wird abgerufen (1/6), 950,0 K (4,1 M installiert)
Abrufen: subversion-perl-1.5.0-96.1.x86_64.rpm [fertig]
Installiere: subversion-perl-1.5.0-96.1 [fertig]
Paket sqlite3-3.5.7-17.1.x86_64 wird abgerufen (2/6), 30.,0 K (40,0 K installiert)
Abrufen: sqlite3-3.5.7-17.1.x86_64.rpm [fertig]
Installiere: sqlite3-3.5.7-17.1 [fertig]
Paket perl-DBD-SQLite-1.14-41.1.x86_64 wird abgerufen (3/6), 44,0 K (103,0 K installiert)
Abrufen: perl-DBD-SQLite-1.14-41.1.x86_64.rpm [fertig]
Installiere: perl-DBD-SQLite-1.14-41.1 [fertig]
Paket git-svn-1.5.4.5-26.1.x86_64 wird abgerufen (4/6), 66,0 K (195,0 K installiert)
Abrufen: git-svn-1.5.4.5-26.1.x86_64.rpm [fertig]
Installiere: git-svn-1.5.4.5-26.1 [fertig]
Paket git-cvs-1.5.4.5-26.1.x86_64 wird abgerufen (5/6), 63,0 K (205,0 K installiert)
Abrufen: git-cvs-1.5.4.5-26.1.x86_64.rpm [fertig]
Installiere: git-cvs-1.5.4.5-26.1 [fertig]
Paket git-1.5.4.5-26.1.x86_64 wird abgerufen (6/6), 10,0 K (3,0 K installiert)
Abrufen: git-1.5.4.5-26.1.x86_64.rpm [fertig]
Installiere: git-1.5.4.5-26.1 [fertig]

...oder über die Fähigkeit, die sie anbieten:

$ zypper in MozillaFirefox \< 3
Installierte Pakete lesen...
'MozillaFirefox', welches 'MozillaFirefox<3' anbietet, ist bereits installiert.
Keine auszuführenden Aktionen.
$ zypper in MozillaFirefox\>= 3}
Installierte Pakete lesen...

Die folgenden Pakete werden aktualisiert:
  mozilla-xulrunner190-translations MozillaFirefox mozilla-xulrunner190-gnomevfs
mozilla-xulrunner190 MozillaFirefox-translations


Die folgenden Pakete werden GELÖSCHT:
  mozilla-xulrunner190-lang


Gesamtgröße des Downloads: 11,0 M. Nach der Operation werden zusätzlich 12,9 M belegt.
Fortfahren? [J/n/p/?]:
$ zypper in 'libqtiff.so()(64bit)'
Installierte Pakete lesen...
'libqt4-x11', welches 'libqtiff.so()(64bit)' anbietet, ist bereits installiert.
Keine auszuführenden Aktionen.

Andere Beispiele:

zypper in yast* # installiere alle yast-Module
zypper in -t pattern lamp_server # installiere Schema lamp_server (Pakete, die für einen LAMP-Server benötigt werden)
zypper in emacs pattern:lamp_server # installiere das Paket emacs und das Schema lamp_server
zypper in vim -emacs # installiere vim und entferne emacs in einem Zug
zypper in amarok packman:libxine1 # installiere libxine1 aus packman und amarok aus irgendeinem Depot
zypper in bitchx-1.1-81.x86_64.rpm # installiere das bitchx RPM aus dem lokalen Verzeichnis
zypper in -f subversion # erneute Installation von subversion erzwingen


Pakete entfernen

remove oder rm

Das Kommando remove ist dem Kommando zum Installieren sehr ähnlich, abgesehen davon, dass der Effekt gegenteilig ist. :O)

$ zypper remove sqlite
Installierte Pakete lesen...

Die folgenden Pakete werden GELÖSCHT:
  sqlite3 perl-DBD-SQLite git-cvs git


Nach dem Vorgang werden 351,0 K freigegeben.
Fortfahren? [JA/nein]: n

Quellpakete und Bauabhängigkeiten

source-install oder si

$ zypper si zypper
Installierte Pakete lesen...

Die folgenden NEUEN Pakete werden installiert:
  libzypp-devel libsatsolver-devel


Das folgende Quellpaket wird installiert:
  zypper


Gesamtgröße des Downloads: 1,5 M. Nach der Operation werden zusätzlich 6,7 M belegt.
Fortfahren? [JA/nein]:

Sie können auch nur die Bauabhängigkeiten oder nur das Quellpaket installieren:

zypper si -D zypper # nur die Quellpakete (keine Bauabhängigkeiten)
zypper si -d zypper # nur die Bauabhängigkeiten (keine Quellpakete)


Pakete aktualisieren

update oder up

Die folgenden Kommandos aktualisieren Pakete durch neuere verfügbare Versionen. Siehe auch Verwaltung von Aktualisierungen für weitere Informationen.

zypper up # aktualisiere alle installierten Pakete soweit möglich durch neuere Versionen
zypper up libzypp zypper # aktualisiere libzypp und zypper
zypper in sqlite3 # aktualisiere sqlite3 oder installiere es, wenn es das noch nicht ist


Abfragen

Pakete suchen

search oder se

Standardmäßig sucht das Kommando search nach Paketen jeden Typs, Status und aus allen Paketdepots deren Namen mit der angegebenen Zeichenkette übereinstimmt (vergleicht ungenau):

$ zypper se sqlite
Installierte Pakete lesen...                 

S | Name                     | Zusammenfassung                                                         | Typ       
--+--------------------------+-------------------------------------------------------------------------+-----------
  | dovecot11-backend-sqlite | SQLite support for Dovecot                                              | Paket     
  | kmymoney-sqlite3-plugin  | Sqlite3 plugin for kmymoney                                             | Paket     
  | libapr-util1-dbd-sqlite3 | DBD driver for SQLite 3                                                 | Paket     
  | libgda-3_0-sqlite        | Sqlite Provider for GNU Data Access (GDA)                               | Paket     
  | libgda-4_0-sqlite        | Sqlite Provider for GNU Data Access (GDA)                               | Paket     
i | libqt4-sql-sqlite        | Qt 4 sqlite plugin                                                      | Paket     
i | libsqlite3-0             | Shared libraries for the Embeddable SQL Database Engine                 | Paket     
  | libsqlite3-0-32bit       | Shared libraries for the Embeddable SQL Database Engine                 | Paket     
  | mediatomb-sqlite         | UPnP AV MediaServer                                                     | Paket
  | mono-data-sqlite         | Database connectivity for Mono                                          | Paket
  | pdns-backend-sqlite2     | SQLite 2 backend for pdns                                               | Paket
  | pdns-backend-sqlite3     | SQLite 3 backend for pdns                                               | Paket
i | perl-DBD-SQLite          | The DBD::SQLite is a self contained RDBMS in a DBI driver               | Paket
  | php5-sqlite              | PHP5 Extension Module                                                   | Paket
  | python-sqlite2           | Python bindings for sqlite                                              | Paket
  | python-sqlite2           | Python bindings for sqlite                                              | Quellpaket
  | python-storm-sqlite      | SQLite backend for python-storm                                         | Paket
  | qt3-sqlite               | SQLite Database Plug-In for Qt                                          | Paket
  | rekall-sqlite            | Rekall sqlite Database Backend                                          | Paket
  | rubygem-sqlite3          | A Ruby interface for the SQLite3 database engine                        | Paket
  | sockso-sqlite            | Sqlite Backend for sockso                                               | Paket
i | sqlite2                  | Embeddable SQL Database Engine                                          | Paket
  | sqlite2-32bit            | Embeddable SQL Database Engine                                          | Paket
  | sqlite2-devel            | Embeddable SQL Database Engine                                          | Paket
i | sqlite3                  | Embeddable SQL Database Engine                                          | Paket
  | sqlite3-devel            | Embeddable SQL Database Engine                                          | Paket
  | sqlite3-tcl              | Tcl binding for SQLite                                                  | Paket
  | sqliteman                | An admin frontend for sqlite databases                                  | Quellpaket
  | sqliteman                | An admin frontend for sqlite databases                                  | Paket
  | tntdb1-sqlite            | Tntdb is a c++-class-library for easy database-access - sqlite          | Paket
  | ulogd-sqlite             | SQLite output plugin for ulogd                                          | Paket

Der Buchstabe i in der ersten Spalte zeigt an, dass das Paket bereits auf der lokalen Maschine installiert ist. Um alle verfügbaren Versionen passender Pakete anzuzeigen, nutzen Sie die Option "--details/-s":

$ zypper search -s --match-exact virtualbox-ose
Installierte Pakete lesen...

S | Name           | Typ        | Version     | Arch   | Repository
--+----------------+------------+-------------+--------+-----------------------
v | virtualbox-ose | Paket      | 2.1.4-8.3   | x86_64 | VirtualBox-Paketdepot
i | virtualbox-ose | Paket      | 2.0.6-2.8.6 | x86_64 | openSUSE-11.3-Updates
v | virtualbox-ose | Paket      | 2.0.6-2.6   | x86_64 | Haupt-Repository (OSS)
v | virtualbox-ose | Paket      | 2.1.4-8.3   | i586   | VirtualBox-Paketdepot
v | virtualbox-ose | Paket      | 2.0.6-2.8.6 | i586   | openSUSE-11.3-Updates
v | virtualbox-ose | Paket      | 2.0.6-2.6   | i586   | Haupt-Repository (OSS)
  | virtualbox-ose | Quellpaket | 2.1.4-8.3   | noarch | VirtualBox-Paketdepot
  | virtualbox-ose | Quellpaket | 2.0.6-2.8.6 | noarch | openSUSE-11.3-Updates

Der Buchstabe i in der ersten Spalte zeigt an, dass das ausgewählte Paket bereits auf der lokalen Maschine installiert ist; während der Buchstabe v in der ersten Spalte anzeigt, dass es noch andere Versionen für das auf der Maschine installierte Produkt gibt.

Andere Beispiele:

zypper se -dC --match-words RSI # suche nach der Abkürzung RSI (genaue Treffer), auch in Zusammenfassungen und Beschreibungen
zypper se 'yast*' # zeige alle Pakete, die mit 'yast' beginnen (beachten Sie die Shell-Ausweitung, stellen Sie die Zeichenkette im Zweifelsfall in Anführungszeichen!)
zypper se -r packman # listet alle Pakete aus dem Depot 'packman' auf
zypper se -i sqlite # zeige alle installierten pakete, die sqlite in ihrem Namen enthalten
zypper se -t pattern -r repo-oss # liste alle Schemata aus dem Depot 'repo-oss' auf
zypper se -t product # liste alle verfügbaren Produkte auf


Informationen über Pakete erhalten

info oder if

$ zypper info amarok
Installierte Pakete lesen...


Informationen für Paket amarok:

Repository: @System
Name: amarok
Version: 2.3.0-71.1
Arch: i586
Hersteller: obs://build.opensuse.org/KDE
Installiert: Ja
Status: aktuell
Installierte Größe: 26,1 MiB
Zusammenfassung: Medienabspieler für KDE
Beschreibung: 
Amarok is a media player for all kinds of media. This includes MP3, Ogg
Vorbis, audio CDs, podcasts and streams. Play lists can be stored in
.m3u or .pls files.

Dieses Kommando zeigt detaillierte Informationen über das Paket namens 'amarok' an.

Andere Beispiele:

zypper info -t patch MozillaFirefox # zeige Informationen über den Patch 'MozillaFirefox'
zypper patch-info MozillaFirefox # das gleiche wie oben
zypper info -t pattern lamp_server # zeige Informationen über das Schema 'lamp_server'
zypper info -t product openSUSE-FTP # zeige Informationen über das angegebene Produkt an


Abhängigkeiten

what-provides oder wp

Der Unterbefehl wird abgelehnt. Er wurde durch search --provides --match-exact ersetzt.

Alle Anbieter einer bestimmten Fähigkeit anzeigen:

$ zypper wp firefox
Installierte Pakete lesen...
S | Name           | Typ   | Version     | Arch   | Repository
--+----------------+-------+-------------+--------+-----------------------
i | MozillaFirefox | Paket | 3.0.6-0.1.2 | x86_64 | openSUSE-11.2-Updates
v | MozillaFirefox | Paket | 3.0.5-1.1   | x86_64 | openSUSE-11.2-Updates
v | MozillaFirefox | Paket | 3.0.4-4.7   | x86_64 | Haupt-Repository (OSS)
v | MozillaFirefox | Paket | 3.0.6-0.1.2 | i586   | openSUSE-11.2-Updates
v | MozillaFirefox | Paket | 3.0.5-1.1   | i586   | openSUSE-11.2-Updates
v | MozillaFirefox | Paket | 3.0.4-4.6   | i586   | Haupt-Repository (OSS)

Dieses Kommando ist rpm -q --whatprovides firefox ähnlich, allerdings kann rpm nur die RPM-Datenbank abfragen (Datenbank installierter Pakete). Zypper zeigt ihnen andererseits die Anbieter jeder Fähigkeit aus jedem Paketdepot, nicht nur die installierten.

Andere Abfragen

Die Kommandos patches, packages, patterns und products sind ähnlich zu search -s -t [patch,package,pattern,product], außer das sie einige zusätzliche Informationen zum zugehörigen Pakettyp anzeigen. patches zeigt zum Beispiel auch den Status (Benötigt/Sicherheit/Nicht anwendbar) von Patches an.

Die Kommandos list-updates und patch-check werden unter Verwaltung von Aktualisierungen.


Paketsperren

locks oder ll addlock oder al removelock oder rl cleanlocks oder cl

Paketsperren dienen dem Zweck, Pakete im System vor Änderungen zu schützen. Pakete, auf die eine aktive Sperre zutrifft, können ihren Installationsstatus nicht ändern; installierte Pakete können nicht entfernt oder aktualisiert, noch nicht installierte Pakete können nicht installiert werden.

Um alle Pakete zu sperren, die mit 'yast2' beginnen:

$ zypper al 'yast2*'
Festgelegte Sperre wurde erfolgreich hinzugefügt.

Seien Sie auch hier wieder vor Shell-Ausweitungen auf der Hut, nutzen Sie Anführungszeichen wenn die Möglichkeit besteht, dass yast* auf einige Dateien im aktuellen Verzeichnis zutrifft.

Um die aktuell aktiven Sperren aufzulisten:

$ zypper ll
# | Name             | Typ     | Repository
--+------------------+---------+-----------
1 | libpoppler3      | package | (jedes)
2 | libpoppler-glib3 | package | (jedes)
3 | yast*            | package | (jedes)

Um eine Sperre zu entfernen:

$ zypper rl yast2-packager
Installierte Pakete lesen...
Die folgende Anfrage sperrt einige der Objekte, die Sie entsperren wollen:

type: package
match_type: glob
case_sensitive: on
solvable_name: yast2*

Do you want remove this lock? [JA/nein]: j
1 Sperre wurde erfolgreich entfernt.

Andere Beispiele:

zypper al zypper # sperrt das Paket 'zypper' (exakte Übereinstimmung)
zypper al -r repo-oss virtualbox* # beschränkt die Sperrung auf das Depot 'repo-oss' (erlaubt Installation aus anderen)
zypper rl 3 # Sperrung über Angabe von Nummer entfernen


Sie können die Sperren auch direkt verändern, indem Sie die Sperrdatei bearbeiten.

Werkzeuge

Abhängigkeiten überprüfen

verify oder ve

Sie könnten gelegentlich mit einem kaputten System enden, wenn es zu Paketabhängigkeiten kommt. Wenn eine ihrer Anwendungen nicht mehr startet und dabei eine Meldung ausgibt, dass etwas fehlt, ist die ein Fall für zypper zur Prüfung:

$ rpm -e --nodeps mozilla-xulrunner190 $ firefox


Could not find compatible GRE between version 1.9.0 and 1.9.0.
$ zypper ve
Installierte Pakete lesen...
Einige der Abhängigkeiten der installierten Pakete sind beschädigt. Um diese Abhängigkeiten zu reparieren, müssen die folgenden Aktionen ausgeführt werden:

Das folgende NEUE Paket wird installiert:
  mozilla-xulrunner190


Gesamtgröße des Downloads: 6,5 M. Nach der Operation werden zusätzlich 23,5 M belegt.
Fortfahren? [JA/nein]: j

Installiere neue empfohlene Pakete

install-new-recommends oder inr

Dieses Kommando findet und installiert neu hinzugefügte empfohlene Pakete für bereits installierte Pakete. Dies bietet einen einfachen Weg, um neue Sprachbündel für ihre Software oder Treiber für neu installierte Hardware hinzuzufügen.

$ zypper inr
Installierte Pakete lesen...

Die folgenden NEUEN Pakete werden installiert:
  kdebase4-openSUSE-lang bundle-lang-common-de


Gesamtgröße des Downloads: 534,0 K. Nach der Operation werden zusätzlich 1,9 M belegt.
Fortfahren? [JA/nein]:

Verwaltung von Aktualisierungen

Es gibt zwei Ansätze, ihr System auf dem aktuellen Stand zu halten. Der erste ist patch-weise, der zweite ist paketweise.

Der patch-weise Ansatz ist besonders nützlich für Leute, die stabile Veröffentlichungen nutzen und ihr System mit Patches aktualisieren wollen, die über das Online-Update-Paketdepot veröffentlicht werden. Aktualisierungsdepots werden standardmäßig während der Installation oder der Aktualisierung des gesamten Systems hinzugefügt, oder sie können über Einrichtung der Online-Aktualisierung hinzugefügt werden, das Sie im Abschnitt Software im YaST-Kontrollzentrum finden, oder Sie fügen es manuell mit zypper hinzu. Hier finden Sie die Liste der verfügbaren openSUSE-Update-Paketdepots.

Das YaST-Äquivalent dieser Funktion ist das Modul Einrichten der Online-Aktualisierung.

Die zweite, die paketweise, Aktualisierung wird im Abschnitt Paketaktualisierungen beschrieben und dient dem allgemeinen Aktualisieren von Paketen aus jedem Depot durch die jeweilige neuere Version.

Benötigte Patches auflisten

list-patches oder lp

Alle benötigten Aktualisierungen (Patches) zeigt folgender Befehl:

$ zypper lp
Installierte Pakete lesen...
Patches

Repository       | Name               | Version | Kategorie   | Status
-----------------+--------------------+---------+-------------+---------
Updates für 11.2 | KDE4-fixes         | 38      | recommended | Benötigt
Updates für 11.2 | MozillaFirefox     | 50      | recommended | Benötigt
Updates für 11.2 | NetworkManager-kde | 49      | recommended | Benötigt

Manchmal werden nur Aktualisierungen angezeigt, die das Paketverwaltungssystem betreffen, da diese zuerst angewendet werden sollten. Sobald sie angewendet sind, wird der Rest der verfügbaren Aktualisierung von diesem Kommando angezeigt.

Patches anwenden

patch

Um benötigte Patches anzuwenden:

$ zypper patch
Installierte Pakete lesen...

Die folgenden Pakete werden aktualisiert:
  NetworkManager-kde mozilla-nss mozilla-nspr korganizer


Die folgenden NEUEN Pakete werden installiert:
  NetworkManager-kde MozillaFirefox KDE4-fixes


Gesamtgröße des Downloads: 2,9 M. Nach der Operation werden zusätzlich 283,0 K belegt.
Fortfahren? [JA/nein]:

Alle Patches auflisten

patches

Das Kommando list-updates listet nur die benötigten Patches auf. Um alle verfügbaren Patches aufzulisten, nutzen Sie:

$ zypper patches
Installierte Pakete lesen...
Katalog          | Name               | Version | Kategorie   | Status
-----------------+--------------------+---------+-------------+---------------
Updates für 11.2 | KDE4-fixes         | 38      | recommended | Installiert
Updates für 11.2 | MozillaFirefox     | 50      | recommended | Installiert
Updates für 11.2 | NetworkManager-kde | 49      | recommended | Installiert
Updates für 11.2 | autoyast2          | 37      | recommended | Installiert
Updates für 11.2 | courier-authlib    | 42      | security    | Nicht anwendbar
Updates für 11.2 | insserv            | 47      | recommended | Installiert
Updates für 11.2 | opera              | 43      | security    | Installiert

Auf Patches prüfen

patch-check oder pchk

Dieses Kommando zeigt ihnen, ob irgendwelche wichtigen Patches für ihre System verfügbar sind und zeigt die Anzahl solcher Patches an:

$ zypper pchk
Installierte Pakete lesen...
0 Patches benötigt (0 Sicherheits-Patches)

Informationen über Patches abfragen

patch-info
info -t patch

$ zypper info -t patch MozillaFirefox
Installierte Pakete lesen...


Informationen für Patch MozillaFirefox:

Name: MozillaFirefox
Version: 509
Arch: noarch
Hersteller: maint-coord@suse.de
Status: Installiert
Kategorie: security
Erstellt am: Fr 06 Feb 2009 02:13:22 CET
Neustart erforderlich: Nein
Neustart des Paketverwalters erforderlich: Nein
Interaktiv: Nein
Zusammenfassung: MozillaFirefox: Security update to version 3.0.6
Beschreibung:
The Mozilla Firefox browser is updated to version 3.0.6
fixing various security and stability issues.

In openSUSE 12.1 scheint zypper nur Patch-IDs (z.B. openSUSE-2011-17) zu verstehen, da z.B. folgendes Kommando nichts liefert:

zypper patch-info util-linux

Paketaktualisierungen

list-updates oder lu
update oder up

Um einfach installierte Pakete durch neuere verfügbare Versionen zu ersetzten, nutzen Sie:

# zypper up


Das folgende Kommando ist äquivalent zu dem aus früheren zypper-Versionen bekannten zypper up -t patch. Es zeigt alle verfügbaren Paketaktualisierungen an.

$ zypper lu


Die obigen Kommandos werden nur solche Pakete auflisten oder aktualisieren, die keine Abhängigkeitsprobleme haben. Um eine Rohliste von Pakten mit neueren Versionen zu erhalten, nutzen Sie:

# zypper lu -a


Dies wird alle Aktualisierungskandidaten auflisten, egal ob sie installierbar sind oder nicht, oder unabhängig davon, ob der Nutzer selber Probleme lösen muss.

Distributionsaktualisierung

dist-upgrade or dup

# zypper dup


Dieses Kommando nutzt den Algorithmus zur Distributionsaktualisierung, der Paketaufteilungen, unbetreute Pakete und ähnliches handhaben kann. Nutzen Sie es, um zu einer anderen Distributionsausgabe zu wechseln.

Während eines dist-upgrade wird es empfohlen, nur das Hauptpaketdepot der Distribution zu aktivieren, die Sie installieren wollen, plus ein paar wichtige Paketdepots die Sie nutzen (noch besser - ihre Version die zum aktuellen Hauptdepot passt). Sie können dies erreichen, indem Sie die alten Paketdepots über zypper mr -da deaktivieren, die neuen Depots über zypper ar hinzufügen und zypper dup auslösen. Sie können die Depots auch über die Option --repo hinzufügen: zypper dup -r repo1 -r repo2 ....

FRAGE: Stimmt es, dass "zypper up" nur dann Pakete aktualisiert, wenn sich eine neuere Version im selben Paketdepot wie das veraltete Paket befindet, und dass "zypper dup" alles aktualisiert, egal in welchem Depot sich das neue Paket befindet?

ANTWORT: "zypper up" aktualisiert das Paket, wenn eine neuere Version verfügbar ist, ändert aber nicht den Anbieter/Vendor (Hinweis: Der komplette Build Service hat zur Zeit den gleichen Vendor). "zypper dup" wird versuchen, all ihre installierten Pakete mit denen aus (all) ihren aktivierten Paketdepots zu synchronisieren. Das heißt, dass es auch Pakete zurückstufen wird, wenn Sie eine neuere Version installiert haben, als im Paketdepot angeboten wird.

Zypper in Skripten und Anwendungen nutzen


Zypper unterstützt verschiedene globale Optionen, die es dafür geeignet machen, innerhalb automatisierter Prozesse wie Skripte zu nutzen. Außerdem können verschiedene Exit-Codes in automatisierten Prozessen genutzt werden, die in zyppers man-Seite aufgelistet sind.


Nicht-Interaktiver Modus

--non-interactive

In diesem Modus stellt Zypper dem Nutzer keine Fragen und nutzt stattdessen immer die Standardantworten. Wenn diese Option genutzt wird, ist es garantiert, dass Zypper den Nutzer nicht zu einer Eingabe über stdin auffordert, oder in einer endlosen Schleife stecken bleibt.

Um ihr System bspw. automatisch ohne Bestätigung zu aktualisieren, können Sie folgendes nutzen:

# zypper --non-interactive update


Dieses Kommando bedarf keiner Bestätigung des Nutzers um die Aktualisierung fortzusetzen, lässt alle interaktiven Patches, die eine zusätzliche Bestätigung bräuchten, aus, und beantwortet auch automatisch jede andere Eingabeaufforderung.

Keine-GPG-Prüfungen-Modus

--no-gpg-checks

Wenn diese Option genutzt wird, wird zypper immer fortfahren, wenn eine der GPG-Prüfungen fehl schlägt, wenn bspw. eine Paketdepotdatei nicht signiert ist, eine Datei signiert ist und die GPG-Prüfung fehl schlägt, usw.


Lizenzen automatisch annehmen

--auto-agree-with-licenses

Dies ist eine spezielle Option für die Kommandos install, remove und update. Wenn sie genutzt wird, erklärt der Nutzer, dass er den installierten Lizenzen zustimmt, und zypper wird bei Lizenzbestätigungen automatisch mit 'ja' antworten. Dies ist nützlich für Leute, die den selben Satz von Pakten (über einen automatisierten Prozess) auf mehreren Maschinen installieren und die Lizenzen vorher schon alle gelesen haben.


Stille Ausgabe

--quiet

Vermeidet die Anzeige von zu viel Text, wie Informationen zu Fortschritt, und zeigt nur die Ergebnisse der Operationen und Fehlermeldungen an.


XML-Ausgabe

--xmlout

Diese Option veranlasst zypper dazu, in XML zu sprechen. Dies erlaubt Skripten, grafischen Schnittstellen oder anderen Anwendungen, die zypper nutzen wollen, zyppers Ausgabe auf einem gut definierten, standardisierten Weg zu verarbeiten. Das RNC-Schema von zyppers XML-Ausgabe ist hier und unter /usr/share/zypper/xml/xmlout.rnc verfügbar.

Nicht die komplette (aber der Großteil) der Ausgabe ist zur Zeit in XML; Ziel ist es, alle möglichen Ausgaben in XML zu haben.


Eingabeaufforderungen

Das Folgende soll eine komplette Liste der Fälle werden, in denen Zypper eine Interaktion des Nutzers erwartet, zusammen mit den im Nicht-Interaktiven-Modus genutzten Antworten. Alle zusätzlichen hier aufgeführten Optionen haben eine höhere Priorität als --non-interactive, wenn Sie genutzt werden, wird die Antwort, die sie implizieren, automatisch genutzt, auch wenn --non-interactive nicht genutzt wird.


GPG-bezogene Eingabeaufforderungen

Wo --no-gpg-checks angewendet wird, wird eine Nachricht ausgegeben oder es wird eine Warnung nach stderr geschrieben und protokolliert.

Aufforderung Standardantwort Mit --no-gpgp-checks Hinweis
unsignierte Datei akzeptieren? N J
neuen Schlüssel akzeptieren ((a)bweisen, (t)emporär oder (i)immer vertrauen? [A/t/i]) A A ein neuer Schlüssel kann nur im interaktiven Modus importiert werden
unbekannten Schlüssel akzeptieren? N J
Überprüfung signierter Dateien schlug fehl, fortfahren? N J
keine Signatur für eine Datei, fortfahren? N J
unbekannte Signatur akzeptieren? N J


Andere Eingabeaufforderungen

Aufforderung Standardantwort Andere Antwort Hinweis
mit Installation/Entfernen/Aktualisierung fortfahren? J zusätzlich kann bei install/remove/update auch die Option --no-confirm genutzt werden, auch ohne die globale Optipon --non-interactive
Drittanbieterlizenz bestätigen N J wenn --auto-agree-with-licenses genutzt wird für zypper update kann zusätzlich die Option --skip-interactive genutzt werden, um interaktive Patches von der Zu-Installieren-Liste auszuschließen (eine Erbschaft von rug)
bestätigen einer Patch-Nachricht J
Problem beim Installieren/Entfernen einer Auflösbarkeit, Abbrechen/Wiederholen/Ignorieren? ABBRUCH dies ist hässlich und kann in Zukunft verbessert werden
Problem beim Herunterladen eines Pakets, Abbrechen/Wiederholen/Ignorieren? ABBRUCH dies ist ebenfalls hässlich, kann irgendwann in der Zukunft verbessert werden
Abhängigkeitenkonflikt, #/u/w/a (Lösungsnummer, Überspringen, Wiederholen oder Abbrechen) a immer abbrechen, Nutzerinteraktion wird zur Auflösung benötigt
Aufforderung zum Wechseln eines Mediums ABBRUCH
problematische Sperre entfernen? J

In der XML-Ausgabe werden Eingabeaufforderungen durch das tag <prompt> angezeigt, das dass Attribut id enthält. Eine Auflistung aller bekannten ids ist in der Datei prompt.h verfügbar, die Sie im zypper Paket unter (/usr/include/zypper/prompt.h) finden.