Zypper: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Deinstallation)
K (Repo hinzufügen (addrepo))
 
(17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
{{Korrekter Titel|zypper}}
 
{{Korrekter Titel|zypper}}
 
+
{{Infobox Software
 +
| Name                              = Zypper
 +
| Logo                              =
 +
| Screenshot                        = [[Bild:zypper-1.png|300px]]
 +
| Beschreibung                      = zypper screenshot
 +
| Hersteller                        =
 +
| AktuelleVersion                  = zypper: 1.8.11 <br/> libzypp: 12.9.0 <br/>
 +
| AktuelleVersionFreigabeDatum      = 28. Februar 2013
 +
| AktuelleVorabVersion              =
 +
| AktuelleVorabVersionFreigabeDatum =
 +
| Betriebssystem                    = [[Linux]]
 +
| Programmiersprache                = [[C++]]
 +
| Kategorie                        = [[Paketmanager]]
 +
| Lizenz                            = [[GPL]]
 +
| Deutsch                          =
 +
| Website                          = http://en.opensuse.org/Portal:Libzypp
 +
}}
 
Wie Installiere oder entferne ich Software mit '''zypper''', dem Kommandozeilen-Frontend von [[YaST]] ([[Paketmanager]])?<br/>
 
Wie Installiere oder entferne ich Software mit '''zypper''', dem Kommandozeilen-Frontend von [[YaST]] ([[Paketmanager]])?<br/>
 
<br/>
 
<br/>
  
== Allgemeines ==
+
{{Box Wissen||
'''zypper''' ist ab [[openSUSE]] 10.2 als Kommandozeilen-Frontend für den [[Paketmanager]] [[YaST]] verfügbar und ist damit der Nachfolger der "[[YaST]]-Shell" '''y2mpsh'''.<br/>
+
* Umgang mit der [[Konsole]]
 +
}}
 +
 
 +
'''zypper''' ist unter openSUSE das Kommandozeilen-Frontend für die Paketverwaltung. Es macht Gebrauch von dem Paketmanagementsystem libzypp, genau wie das graphische Frontend [[YaST]]. Somit sind zypper und [[YaST]] vollständig zueinander kompatibel. Zur Abhängigkeitsauflösung wird ein Sat-Solver verwendet, siehe dazu [http://de.wikipedia.org/wiki/SAT-Solver http://de.wikipedia.org/wiki/SAT-Solver]
 +
 
 +
Fast alle Befehlsoptionen von '''zypper''' haben eine Langform sowie eine Kurzform. In den Beispielcodes werden hier lediglich die Kurzformen verwendet, da sie in der Praxis häufiger angewendet werden. In den Beschreibungen werden sowohl die Kurz- als auch die Langformen genannt.
 +
== Installation ==
 +
*''Die Installation eines Paketes erfolgt mit dem Befehl "in" oder "install":''<br/>
 +
zypper in <Paketname>
 +
*Es können natürlich auch mehrere Pakete zu Installation ausgewählt werden:<br/>
 +
zypper in <Paketname 1> <Paketname 2> ... <Paketname N>
 +
*Zur gleichen Zeit Paket(e) deinstallieren (vor dem zweiten/zu löschenden Paketname/Paket ist ein Minus):
 +
zypper in <Paketname> <'''-'''Paketname>
 +
*Es ist auch möglich direkt RPM-Pakete zu installieren. Es muss nur der korrekte Pfad zum RPM angegeben werden. Wenn man sich mit der Shell im Verzeichnis der RPMs befindet reicht lediglich der Paketname. Es können neben lokalen Paketpfaden auch Adressen im Internet angegeben werden. Eventuell benötigte Abhängigkeiten werden, wenn möglich, aus den Repositories installiert.
 +
zypper in <pfad-zum-rpm-paket/Paketname.rpm>
 +
 
 +
== Deinstallation ==
 +
*''Die Deinstallation von Paketen erfolgt mit dem Befehl "rm" oder "remove":''<br/>
 +
zypper rm <Paketname>
 +
*Es können natürlich auch mehrere Pakete zur Deinstallation ausgewählt werden:<br/>
 +
zypper rm <Paketname 1> <Paketname 2> ... <Paketname N>
 +
*Zur gleichen Zeit Paket(e) installieren:
 +
zypper rm <Paketname> <'''+'''Paketname>
 +
*Das Paket und evtl. vorhandene, nicht mehr benötigte Abhängigkeiten werden mit der zusätzlichen Option "-u" oder "--clean-deps" entfernt:
 +
zypper rm -u <Paketname>
 +
 
 +
== Paketsuche ==
 +
*Die Paketsuche erfolgt mit dem Befehl "se" oder "search".<br/>
 +
*''Alle [[Installationsquellen_zu_openSUSE|Installationsquellen]] nach einem bestimmten Paket zu durchsuchen:''<br/>
 +
zypper se <Suchbegriff>
 +
*Paket-Beschreibungen in die Suche einbeziehen:<br/>
 +
zypper se -d <Suchbegriff>
 +
*Mehr Details (-s) in nur nach installierten Paketen (-i) suchen:<br/>
 +
zypper se -si <Suchbegriff>
 +
*Suche nach installierten Paketen nur aus einem bestimmten Repository.
 +
  zypper se -si -r <repo> <Suchbegriff>
 +
 +
{{Box Beispiel|Paketsuche.|
 +
<pre>kiste:~ # zypper se -si firefox
 +
Daten des Repositories laden ...
 +
Installierte Pakete lesen ...
 +
 
 +
S | Name                              | Typ  | Version      | Arch  | Repository         
 +
--+------------------------------------+-------+--------------+--------+---------------------
 +
i | MozillaFirefox                    | Paket | 20.0-1.8.3  | x86_64 | openSUSE-12.3-Update
 +
i | MozillaFirefox-branding-openSUSE  | Paket | 6.1-2.2.1    | x86_64 | openSUSE-12.3-Oss 
 +
i | MozillaFirefox-translations-common | Paket | 20.0-1.8.3  | x86_64 | openSUSE-12.3-Update
 +
i | tracker-miner-firefox              | Paket | 0.14.4-2.1.2 | x86_64 | openSUSE-12.3-Oss</pre>
 +
}}
 +
 
 +
== Paketinformationen ==
 +
*Um sich Informationen zu einem Paket anzeigen zu lassen verwendet man den Befehl "if" oder "info":
 +
zypper if <Paketname>
 +
 
 +
== Patterns (Paketgruppen) ==
 +
 
 +
Patterns sind Paketgruppen in denen Pakete zusammengefasst sind die für eine bestimmte Funktionalität erforderlich sind. Oft sind dies umfangreichere Installationen mit größeren Paketabhängigkeiten. Es reicht dann ein Installationsbefehl statt mehrere Pakete einzeln zu installieren.<br/>
 
<br/>
 
<br/>
Da '''zypper''' ein [[Konsole]]nwerkzeug ist, braucht man zuerst eine [[Konsole]]:<br/>
+
Alle Patterns werden angezeigt mit dem Befehl:
*<u>[[KDE]]:</u><br/>
+
zypper patterns
:'''<ALT> + <F2>'''<br/>
+
Wenn ein "i" in der ersten Spalte steht, ist das Pattern bereits installiert.<br/>
:Befehl: '''konsole'''<br/><br/>
 
*<u>Gnome:</u><br/>
 
:'''Anwendungen -> Anwendung ausführen'''<br/>
 
:Befehl: '''gnome-terminal'''<br/>
 
<br/>
 
Und da neue Pakete oder Updates nur der [[Administrator]] einspielen darf, zum "[[Superuser]]" '''[[root]]''' wechseln:<br/>
 
su -
 
<root-Passwort eingeben - Es werden keine *** o.ä. angezeigt>
 
 
<br/>
 
<br/>
 +
Informationen darüber welche Pakete zu einem Pattern gehören erhält man mit "if" oder "info":
 +
zypper if -t pattern <pattern_name>
 +
zypper pattern-info <pattern_name>
 +
Installiert wird ein Pattern schließlich mit "in" oder "install":
 +
zypper in -t pattern <pattern_name>
 +
Bei der Installation können noch zusätzliche Pakete als bei der "info"-Ausgabe installiert werden, da diese wiederum abhängige Pakete installieren.
 +
 +
{{Box Hinweis||
 +
Es ist derzeit nicht möglich Patterns vollständig mit "remove" wieder zu entfernen. Es steht auf der Todo-Liste der Entwickler, ist aber momentan nicht implementiert.
 +
}}
 +
 +
== Update ==
 +
Updates werden mit dem Befehl "up" oder "update" durchgeführt. Dabei wird in den Repos geschaut ob aktualisierte Pakete vorhanden sind und installiert. Ein Herstellerwechsel ist mit "up" nicht möglich. Ist z.B. ein Paket einmal aus einem Repo installiert, werden neue Versionen nur aus diesem Repo akzeptiert.
 +
 +
*Um alle verfügbaren Updates zu installieren:
 +
zypper up
 +
*Um alle verfügbaren Updates aus einem bestimmten Repository zu installieren:
 +
zypper up -r <Alias>
 +
 +
== dist-upgrade ==
 +
Mit dem Befehl "dist-upgrade" oder "dup" wird ein komplettes System-Upgrade durchgeführt (z.B. von openSUSE 12.2 auf 12.3). Der Befehl erlaubt auch einen Herstellerwechsel.
 +
zypper dup
  
== [[YaST-Installationsquellen für openSUSE|Paketquellen]] verwalten ==
+
== Paketsperren (locks) ==
'''zypper''' kann - genau wie [[YaST]] - externe [[YaST-Installationsquellen für openSUSE|Paketquellen]] verwalten.<br/>
+
Manchmal kann es notwendig oder erwünscht sein Pakete zu sperren um zu verhindern das ein Update neuere Versionen installiert. Die aktuell installierte Version wird dann beibehalten. <br/>
Diese Funktionen (Anlegen/Löschen von Installationsquellen) ist identisch mit dem [[YaST]]-Modul [[Software Installieren/Deinstallieren mit YaST#Paketquellen_verwalten|Installationsquelle wechseln]].<br/>
+
<br/>Anwendungsfälle könnten z.B. sein dass Funktionen in neuen Versionen entfernt wurden und man diese beibehalten möchte. Oder bei der Benutzung von nicht-offiziellen Repos gibt es mit einer neuen Paketversion Probleme mit Abhängigkeiten aus anderen Repos.<br/>
(Es spielt also keine Rollen, ob die Installationsquellen mit '''zypper''' und/oder [[YaST]] verwaltet werden).<br/>
 
 
<br/>
 
<br/>
 +
*Um ein Paket zu sperren benutzt man den Befehl "al" oder "addlock":
 +
zypper al <Paketname>
 +
*Ein Paket wird wieder entsperrt mit dem Befehl "rl" oder "removelock":
 +
zypper rl <Paketname>
 +
*Eine Liste der gesperrten Pakete erhält man mit dem Befehl "ll" oder "locks":
 +
zypper ll
  
=== Einbinden ===
+
== Repositories verwalten ==
*''Um eine zusätzliche Quelle einzubinden:''<br/>
+
Es stehen unter zypper diverse Befehle zur Verwaltung und Modifizierung von Repos zur Verfügung.
{{Box Hinweis||
+
=== Repo hinzufügen (addrepo) ===
Gültig ab openSUSE 11.0 (zypper 0.11.6)
+
*''Um eine zusätzliche Quelle einzubinden wird der Befehl "ar" oder "addrepo" benutzt:''<br/>
}}<br/>
+
zypper ar <URL> <Name der Quelle/Alias>
*Einfaches hinzufügen:<br>
+
{{blau|zypper ar <URL> <Name der Quelle/Alias>}}
+
*Gleichzeitig ''Autorefresh'' aktivieren ("-f" oder "--refresh")
 +
zypper ar -f <URL> <Alias der Quelle>
 
<br/>
 
<br/>
*Mit Angabe des Typs der Installationsquelle:
+
{{Kasten rot|
{{blau|zypper ar -t YUM <URL> <Alias der Quelle>}}
+
Installationsquellen für openSUSE sind hier zu finden: [[Installationsquellen_zu_openSUSE|Installationsquellen zu openSUSE]].
 +
}}
 
<br/>
 
<br/>
*Gleichzeitig ''Autorefresh'' aktivieren
+
{{Box Beispiel|Packman Repositorium in openSUSE 12.3 einbinden|
{{blau|zypper ar -f <URL> <Alias der Quelle>}}
+
<pre>zypper ar -f http://packman.inode.at/suse/12.3/ Packman</pre>
<br/>
 
 
 
{{Kasten grün|
 
:Installationsquellen: [[YaST-Installationsquellen für openSUSE]]
 
}}
 
<br/><br/>
 
{{Box Hinweis||Statt '''[[YUM]]''' kann als Typ der Quelle auch '''[[YaST]]''' verwendet werden werden.<br/>
 
Eine Installationsquelle ist vom Typ '''[[YaST]]''', wenn im Basisverzeichnis des Repositories die Datei '''directory.yast''' existiert.<br/>
 
Für ein '''[[YUM]]'''-Installationsquelle muss im Basisverzeichnis das Unterverzeichnis '''repodata''' existieren.<br/>
 
Wird die Option '''-t''' nicht verwendet, versucht '''zypper''' den Typ des Repositories automatisch zu erkennen.<br/>}}
 
{{Box Beispiel|Update-Quelle / YUM|
 
<u>openSUSE 11.2</u><pre>zypper ar -t YUM http://download.opensuse.org/update/11.2/ update</pre>
 
}}
 
{{Box Beispiel|Basisrepository / YaST|
 
<u>openSUSE 11.2</u><pre>zypper ar -t YaST http://download.opensuse.org/distribution/11.2/repo/oss/ oss</pre>
 
 
}}
 
}}
 
<br/>
 
<br/>
 
+
Die Daten der [[Installationsquellen_zu_openSUSE|Installationsquellen]] werden unter
Ab '''openSUSE 10.3''' werden die Daten der [[YaST-Installationsquellen für openSUSE|Installationsquellen]] unter
 
 
  /etc/zypp/repos.d
 
  /etc/zypp/repos.d
 
gespeichert.<br/>
 
gespeichert.<br/>
Um eine neue Quelle einzubinden kann also auch einfach die - in vielen Repositories vorhandene - '''*.repo'''-Datei in dieses Verzeichnis heruntergeladen werden.
+
Um eine neue Quelle einzubinden kann also auch einfach die - in vielen Repositories vorhandene '''*.repo'''-Datei in dieses Verzeichnis heruntergeladen werden.<br/>
  
{{Box Beispiel|Mozilla Repository einbinden|
+
{{Box Beispiel|Mozilla Repositorium in openSUSE 12.3 einbinden|
 
<u>wget:</u><pre>cd /etc/zypp/repos.d
 
<u>wget:</u><pre>cd /etc/zypp/repos.d
wget http://download.opensuse.org/repositories/mozilla/openSUSE_10.3/mozilla.repo</pre>
+
wget http://download.opensuse.org/repositories/mozilla/openSUSE_12.3/mozilla.repo</pre>
<u>aria2:</u><pre>aria2c http://download.opensuse.org/repositories/mozilla/openSUSE_10.3/mozilla.repo -d /etc/zypp/repos.d</pre>
+
<u>aria2:</u><pre>aria2c http://download.opensuse.org/repositories/mozilla/openSUSE_12.3/mozilla.repo -d /etc/zypp/repos.d</pre>
 +
}}
 +
<br/>
 +
*Alternativ kann die '''*.repo'''-Datei auch mit zypper eingebunden werden:
 +
zypper ar -f <URL-zur-repo-Datei.repo>
 +
<br/>
 +
{{Box Beispiel|Mozilla .repo-Datei in openSUSE 12.3 einbinden mit zypper|
 +
<pre>zypper ar -f http://download.opensuse.org/repositories/mozilla/openSUSE_12.3/mozilla.repo</pre>
 
}}
 
}}
  
=== Löschen ===
+
{{Box Hinweis||
*''Um eine Installationsquelle zu löschen:''<br/>
+
Statt openSUSE_12.3 ist die zur Zeit genutzte Version einzutragen.
{{blau|zypper rr <Nummer oder Alias der Quelle>}}
+
}}
 +
 
 +
=== Repo löschen (removerepo)===
 +
*''Um eine Installationsquelle zu löschen wird der Befehl "rr" oder "removerepo" verwendet:''<br/>
 +
zypper removerepo <Nummer, Alias oder URI der Quelle>
 
<br/>
 
<br/>
  
=== Status ===
+
{{Box Beispiel|Repo entfernen.|
*Um sich alle [[YaST-Installationsquellen für openSUSE|Eingebundenen Installationsquellen]] anzeigen zu lassen:<br/>
+
Zuerst die eingebundene Repos anzeigen lassen:<br/>
{{blau|zypper repos}}
+
<pre>kiste:~ # zypper lr -u
oder:
+
#  | Alias                          | Name                        | Enabled | Refresh |URI
{{blau|zypper lr}}
+
----+---------------------------------+---------------------------------------+---------+---------+-------------------
(Einfache Ausgabe)<br/>
+
1 | openSUSE-12.2-1.6              | openSUSE-12.2-1.6            | No      | No      | cd:///?devices=/dev/disk/by-id/
 +
ata-ATAPI_iHDS118_4,/dev/sr0,/dev/sr1
 +
2 | repo-non-oss                    | openSUSE-12.2-Non-Oss        | Yes    | Yes    | http://download.opensuse.org/
 +
distribution/12.2/repo/non-oss/
 +
3 | repo-oss                        | openSUSE-12.2-Oss            | Yes    | Yes    | http://download.opensuse.org/
 +
distribution/12.2/repo/oss/
 +
4 | repo-source                    | openSUSE-12.2-Source        | No      | Yes    | http://download.opensuse.org/
 +
source/distribution/12.2/repo/oss/
 +
5 | repo-update                    | openSUSE-12.2-Update        | Yes    | Yes    | http://download.opensuse.org/
 +
update/12.2/
 +
6 | repo-update-non-oss            | openSUSE-12.2-Update-Non-Oss | Yes    | Yes    | http://download.opensuse.org/
 +
update/12.2-non-oss/</pre>
  
{{blau|zypper repos -d}}
+
Repo openSUSE-12.2-1.6 soll über den Alias entfernt werden:
oder:
 
{{blau|zypper lr -d}}
 
(Detaillierte Ausgabe mit Angabe von URLs, Prioritäten, Alias)
 
<br/>
 
  
*Verfügbare (Patch-)Updates anzeigen lassen:<br/>
+
<pre>kiste:~ # zypper rr openSUSE-12.2-1.6</pre>
{{blau|zypper lu}}
 
{{Box Hinweis||Dabei werden nur Patches - also Updates aus dem offiziellen SUSE-Update-Repository - angezeigt.}}
 
*Um alle verfügbaren Updates anzeigen zu lassen:<br/>
 
{{blau|zypper lu -t package}}
 
*Um den Namen (Alias) einer Quelle zu ändern:<br/>
 
{{blau|zypper namerepo <Alias oder Nummer des Repo> <Neuer Alias>}}
 
oder:
 
{{blau|zypper nr <Alias oder Nummer des Repo> <Neuer Alias>}}
 
<br/>
 
  
== Paketsuche ==
+
Repo openSUSE-12.2-1.6 soll über die Nummer entfernt werden:
*''Alle [[YaST-Installationsquellen für openSUSE|Installationsquellen]] nach einem bestimmten Paket zu durchsuchen:''<br/>
+
*Nur in Paketnamensuchen:<br/>
+
<pre>kiste:~ # zypper removerepo 1</pre>
{{blau|zypper se <Suchbegriff>}}
 
*Um die Paket-Beschreibungen in die Suche einzubeziehen:<br/>
 
{{blau|zypper se -d '''<Suchbegriff>'''}}
 
<br/>
 
  
== Paketinformationen ==
+
Repo openSUSE-12.2-1.6 soll über die URI entfernt werden:
*''Um sich Informationen zu einem Paket anzeigen zu lassen:''<br/>
+
<pre>kiste:~ # zypper rr cd:///?devices=/dev/disk/by-id/ata-ATAPI_iHDS118_4,/dev/sr0,/dev/sr1</pre>
{{blau|zypper if <Paketname>}}
+
}}
 
<br/>
 
<br/>
  
== Installation ==
+
=== Repo Status ===
*''Die Installation eines Paketes erfolgt mit:''<br/>
+
*Um sich alle [[Installationsquellen_zu_openSUSE|Eingebundenen Installationsquellen]] anzeigen zu lassen wird der Befehl "lr" oder "repos" verwendet:<br/>
{{blau|zypper in <Paketname>}}
+
zypper lr
*Es können natürlich auch mehrere Pakete zu Installation ausgewählt werden:<br/>
+
*Detaillierte Ausgabe mit Angabe von URLs, Prioritäten, Alias ("-d" oder "--details")
{{blau|zypper in <Paketname 1> <Paketname 2> ... <Paketname N>}}
+
zypper lr -d
*Zur gleichen Zeit Paket(e) deinstallieren:
+
*Verfügbare (Patch-)Updates anzeigen lassen:<br/>
{{blau|zypper in <Paketname> <'''-'''Paketname>}}
+
zypper lu
 +
{{Box Hinweis||Dabei werden nur Patches - also Updates aus dem offiziellen SUSE-Update-Repository - angezeigt.}}
 
<br/>
 
<br/>
  
== Deinstallation ==
+
=== Repo Modifizieren ===
*''Die Deinstallation von Paketen erfolgt mit:''<br/>
+
==== Alias ändern (renamerepo) ====
{{blau|zypper rm <Paketname>}}
+
*Um den Namen (Alias) einer Quelle zu ändern wird der Befehl "nr" oder "renamerepo" verwendet:<br/>
*Es können natürlich auch mehrere Pakete zur Deinstallation ausgewählt werden:<br/>
+
zypper nr <Alias, Nummer oder URI des Repo> <Neuer Alias>
{{blau|zypper rm <Paketname 1> <Paketname 2> ... <Paketname N>}}
 
*Zur gleichen Zeit Paket(e) installieren:
 
{{blau|zypper rm <Paketname> <'''+'''Paketname>}}
 
 
<br/>
 
<br/>
  
== Update ==
+
==== Repo anpassen (modifyrepo) ====
*''Bereits installierte Pakete aktualisieren:''<br/>
+
Mit dem Befehl mr oder modifyrepo und diversen Optionen lassen sich die Eigenschaften von Repos verändern und beeinflussen.
*Verfügbare (Patch-)Updates installieren:<br/>
+
===== Deaktivieren =====
{{blau|zypper up}}
+
zypper mr -d <Reponummer, Alias oder URI>
{{Box Hinweis||Dabei werden nur Patches - also Updates aus dem offiziellen SUSE-Update-Repository - installiert.}}
+
*Das Repo "Packman" aktivieren und alle RPMs daraus nach der Installation im Cache behalten:
*Um alle verfügbaren Updates zu installieren:<br/>
+
zypper mr -ek Packman
{{blau|zypper up -t package}}
 
*Um alle verfügbaren Updates aus einem bestimmten Repository zu installieren:<br/>
 
{{blau|zypper up -r <Alias> -t package}}
 
<br/>
 
  
 
== Zypper Cheat Sheet ==
 
== Zypper Cheat Sheet ==
Zeile 146: Zeile 222:
 
</gallery>
 
</gallery>
 
<br>
 
<br>
 
+
----
 
== weiterführende Links ==
 
== weiterführende Links ==
  
* [http://de.opensuse.org/Zypper Offizielle SuSE-Seite: Zypper]
+
* [http://de.opensuse.org/Zypper Offizielle openSUSE-Seite: Zypper]
* [http://de.opensuse.org/Zypper/Anleitung Offizielle SuSE-Seite: Zypper-Anleitung]
+
* [https://de.opensuse.org/SDB:Zypper_benutzen Offizielle openSUSE-Seite: Zypper benutzen]
 +
* [https://en.opensuse.org/Portal:Zypper Offizielles openSUSE-Portal: Zypper]
 +
* [http://de.wikipedia.org/wiki/Zypper Wikipedia: Zypper]
 +
* [http://doc.opensuse.org/projects/libzypp/HEAD/index.html openSUSE Libzypp Dokumentation (Englisch)]
 +
* [https://en.opensuse.org/openSUSE:Libzypp_satsolver Offizielle openSUSE-Seite: Libzypp Satsolver (Englisch)]
 +
* [http://www.linupedia.org/opensuse/Man_zypper Manpage von Zypper (Linupedia)]
 
<br>
 
<br>
 
----
 
----
 
 
[[Konsole|Zurück zu Konsole]]<br />
 
[[Konsole|Zurück zu Konsole]]<br />
 
[[Paketmanager|Zurück zur Paketmanager-Übersicht]]<br/>
 
[[Paketmanager|Zurück zur Paketmanager-Übersicht]]<br/>
 +
[[Kategorie:Zypper]]
 +
[[Kategorie:openSUSE]]
 
[[Kategorie:RPM]]
 
[[Kategorie:RPM]]
 +
[[Kategorie:Paketmanager]]
 
[[Kategorie:Konsole]]
 
[[Kategorie:Konsole]]

Aktuelle Version vom 8. September 2013, 07:08 Uhr

Icon falscher Titel.png Der korrekte Name dieser Seite lautet „zypper“. Diese Schreibweise ist aufgrund technischer Einschränkungen nicht möglich.
Zypper
Zypper-1.png
zypper screenshot
Basisdaten
Entwickler:
Aktuelle Version: zypper: 1.8.11
libzypp: 12.9.0
letzte Veröffentlichung: 28. Februar 2013
Betriebssystem: Linux
Kategorie: Paketmanager
Lizenz: GPL
Deutschsprachig:
Webseite: http://en.opensuse.org/Portal:Libzypp

Wie Installiere oder entferne ich Software mit zypper, dem Kommandozeilen-Frontend von YaST (Paketmanager)?

Diese Anleitung setzt die Kenntnis folgender Artikel vorraus:


zypper ist unter openSUSE das Kommandozeilen-Frontend für die Paketverwaltung. Es macht Gebrauch von dem Paketmanagementsystem libzypp, genau wie das graphische Frontend YaST. Somit sind zypper und YaST vollständig zueinander kompatibel. Zur Abhängigkeitsauflösung wird ein Sat-Solver verwendet, siehe dazu http://de.wikipedia.org/wiki/SAT-Solver

Fast alle Befehlsoptionen von zypper haben eine Langform sowie eine Kurzform. In den Beispielcodes werden hier lediglich die Kurzformen verwendet, da sie in der Praxis häufiger angewendet werden. In den Beschreibungen werden sowohl die Kurz- als auch die Langformen genannt.

Installation

  • Die Installation eines Paketes erfolgt mit dem Befehl "in" oder "install":
zypper in <Paketname> 
  • Es können natürlich auch mehrere Pakete zu Installation ausgewählt werden:
zypper in <Paketname 1> <Paketname 2> ... <Paketname N>
  • Zur gleichen Zeit Paket(e) deinstallieren (vor dem zweiten/zu löschenden Paketname/Paket ist ein Minus):
zypper in <Paketname> <-Paketname>
  • Es ist auch möglich direkt RPM-Pakete zu installieren. Es muss nur der korrekte Pfad zum RPM angegeben werden. Wenn man sich mit der Shell im Verzeichnis der RPMs befindet reicht lediglich der Paketname. Es können neben lokalen Paketpfaden auch Adressen im Internet angegeben werden. Eventuell benötigte Abhängigkeiten werden, wenn möglich, aus den Repositories installiert.
zypper in <pfad-zum-rpm-paket/Paketname.rpm>

Deinstallation

  • Die Deinstallation von Paketen erfolgt mit dem Befehl "rm" oder "remove":
zypper rm <Paketname>
  • Es können natürlich auch mehrere Pakete zur Deinstallation ausgewählt werden:
zypper rm <Paketname 1> <Paketname 2> ... <Paketname N>
  • Zur gleichen Zeit Paket(e) installieren:
zypper rm <Paketname> <+Paketname>
  • Das Paket und evtl. vorhandene, nicht mehr benötigte Abhängigkeiten werden mit der zusätzlichen Option "-u" oder "--clean-deps" entfernt:
zypper rm -u <Paketname>

Paketsuche

  • Die Paketsuche erfolgt mit dem Befehl "se" oder "search".
  • Alle Installationsquellen nach einem bestimmten Paket zu durchsuchen:
zypper se <Suchbegriff>
  • Paket-Beschreibungen in die Suche einbeziehen:
zypper se -d <Suchbegriff>
  • Mehr Details (-s) in nur nach installierten Paketen (-i) suchen:
zypper se -si <Suchbegriff>
  • Suche nach installierten Paketen nur aus einem bestimmten Repository.
 zypper se -si -r <repo> <Suchbegriff> 

Beispiel: Paketsuche.
kiste:~ # zypper se -si firefox
Daten des Repositories laden ...
Installierte Pakete lesen ...

S | Name                               | Typ   | Version      | Arch   | Repository          
--+------------------------------------+-------+--------------+--------+---------------------
i | MozillaFirefox                     | Paket | 20.0-1.8.3   | x86_64 | openSUSE-12.3-Update
i | MozillaFirefox-branding-openSUSE   | Paket | 6.1-2.2.1    | x86_64 | openSUSE-12.3-Oss   
i | MozillaFirefox-translations-common | Paket | 20.0-1.8.3   | x86_64 | openSUSE-12.3-Update
i | tracker-miner-firefox              | Paket | 0.14.4-2.1.2 | x86_64 | openSUSE-12.3-Oss


Paketinformationen

  • Um sich Informationen zu einem Paket anzeigen zu lassen verwendet man den Befehl "if" oder "info":
zypper if <Paketname>

Patterns (Paketgruppen)

Patterns sind Paketgruppen in denen Pakete zusammengefasst sind die für eine bestimmte Funktionalität erforderlich sind. Oft sind dies umfangreichere Installationen mit größeren Paketabhängigkeiten. Es reicht dann ein Installationsbefehl statt mehrere Pakete einzeln zu installieren.

Alle Patterns werden angezeigt mit dem Befehl:

zypper patterns

Wenn ein "i" in der ersten Spalte steht, ist das Pattern bereits installiert.

Informationen darüber welche Pakete zu einem Pattern gehören erhält man mit "if" oder "info":

zypper if -t pattern <pattern_name>
zypper pattern-info <pattern_name>

Installiert wird ein Pattern schließlich mit "in" oder "install":

zypper in -t pattern <pattern_name>

Bei der Installation können noch zusätzliche Pakete als bei der "info"-Ausgabe installiert werden, da diese wiederum abhängige Pakete installieren.

Hinweis:

Es ist derzeit nicht möglich Patterns vollständig mit "remove" wieder zu entfernen. Es steht auf der Todo-Liste der Entwickler, ist aber momentan nicht implementiert.


Update

Updates werden mit dem Befehl "up" oder "update" durchgeführt. Dabei wird in den Repos geschaut ob aktualisierte Pakete vorhanden sind und installiert. Ein Herstellerwechsel ist mit "up" nicht möglich. Ist z.B. ein Paket einmal aus einem Repo installiert, werden neue Versionen nur aus diesem Repo akzeptiert.

  • Um alle verfügbaren Updates zu installieren:
zypper up
  • Um alle verfügbaren Updates aus einem bestimmten Repository zu installieren:
zypper up -r <Alias>

dist-upgrade

Mit dem Befehl "dist-upgrade" oder "dup" wird ein komplettes System-Upgrade durchgeführt (z.B. von openSUSE 12.2 auf 12.3). Der Befehl erlaubt auch einen Herstellerwechsel.

zypper dup

Paketsperren (locks)

Manchmal kann es notwendig oder erwünscht sein Pakete zu sperren um zu verhindern das ein Update neuere Versionen installiert. Die aktuell installierte Version wird dann beibehalten.

Anwendungsfälle könnten z.B. sein dass Funktionen in neuen Versionen entfernt wurden und man diese beibehalten möchte. Oder bei der Benutzung von nicht-offiziellen Repos gibt es mit einer neuen Paketversion Probleme mit Abhängigkeiten aus anderen Repos.

  • Um ein Paket zu sperren benutzt man den Befehl "al" oder "addlock":
zypper al <Paketname>
  • Ein Paket wird wieder entsperrt mit dem Befehl "rl" oder "removelock":
zypper rl <Paketname>
  • Eine Liste der gesperrten Pakete erhält man mit dem Befehl "ll" oder "locks":
zypper ll

Repositories verwalten

Es stehen unter zypper diverse Befehle zur Verwaltung und Modifizierung von Repos zur Verfügung.

Repo hinzufügen (addrepo)

  • Um eine zusätzliche Quelle einzubinden wird der Befehl "ar" oder "addrepo" benutzt:
zypper ar <URL> <Name der Quelle/Alias>

  • Gleichzeitig Autorefresh aktivieren ("-f" oder "--refresh")
zypper ar -f <URL> <Alias der Quelle>


Installationsquellen für openSUSE sind hier zu finden: Installationsquellen zu openSUSE.


Beispiel: Packman Repositorium in openSUSE 12.3 einbinden
zypper ar -f http://packman.inode.at/suse/12.3/ Packman



Die Daten der Installationsquellen werden unter

/etc/zypp/repos.d

gespeichert.
Um eine neue Quelle einzubinden kann also auch einfach die - in vielen Repositories vorhandene *.repo-Datei in dieses Verzeichnis heruntergeladen werden.

Beispiel: Mozilla Repositorium in openSUSE 12.3 einbinden
wget:
cd /etc/zypp/repos.d
wget http://download.opensuse.org/repositories/mozilla/openSUSE_12.3/mozilla.repo
aria2:
aria2c http://download.opensuse.org/repositories/mozilla/openSUSE_12.3/mozilla.repo -d /etc/zypp/repos.d



  • Alternativ kann die *.repo-Datei auch mit zypper eingebunden werden:
zypper ar -f <URL-zur-repo-Datei.repo>


Beispiel: Mozilla .repo-Datei in openSUSE 12.3 einbinden mit zypper
zypper ar -f http://download.opensuse.org/repositories/mozilla/openSUSE_12.3/mozilla.repo


Hinweis:

Statt openSUSE_12.3 ist die zur Zeit genutzte Version einzutragen.


Repo löschen (removerepo)

  • Um eine Installationsquelle zu löschen wird der Befehl "rr" oder "removerepo" verwendet:
zypper removerepo <Nummer, Alias oder URI der Quelle>


Beispiel: Repo entfernen.

Zuerst die eingebundene Repos anzeigen lassen:

kiste:~ # zypper lr -u
#  | Alias                           | Name                         | Enabled | Refresh |URI
----+---------------------------------+---------------------------------------+---------+---------+-------------------
 1 | openSUSE-12.2-1.6               | openSUSE-12.2-1.6            | No      | No      | cd:///?devices=/dev/disk/by-id/
ata-ATAPI_iHDS118_4,/dev/sr0,/dev/sr1
 2 | repo-non-oss                    | openSUSE-12.2-Non-Oss        | Yes     | Yes     | http://download.opensuse.org/
distribution/12.2/repo/non-oss/
 3 | repo-oss                        | openSUSE-12.2-Oss            | Yes     | Yes     | http://download.opensuse.org/
distribution/12.2/repo/oss/
 4 | repo-source                     | openSUSE-12.2-Source         | No      | Yes     | http://download.opensuse.org/
source/distribution/12.2/repo/oss/
 5 | repo-update                     | openSUSE-12.2-Update         | Yes     | Yes     | http://download.opensuse.org/
update/12.2/
 6 | repo-update-non-oss             | openSUSE-12.2-Update-Non-Oss | Yes     | Yes     | http://download.opensuse.org/
update/12.2-non-oss/

Repo openSUSE-12.2-1.6 soll über den Alias entfernt werden:

kiste:~ # zypper rr openSUSE-12.2-1.6

Repo openSUSE-12.2-1.6 soll über die Nummer entfernt werden:

kiste:~ # zypper removerepo 1

Repo openSUSE-12.2-1.6 soll über die URI entfernt werden:

kiste:~ # zypper rr cd:///?devices=/dev/disk/by-id/ata-ATAPI_iHDS118_4,/dev/sr0,/dev/sr1



Repo Status

zypper lr
  • Detaillierte Ausgabe mit Angabe von URLs, Prioritäten, Alias ("-d" oder "--details")
zypper lr -d
  • Verfügbare (Patch-)Updates anzeigen lassen:
zypper lu
Hinweis:

Dabei werden nur Patches - also Updates aus dem offiziellen SUSE-Update-Repository - angezeigt.



Repo Modifizieren

Alias ändern (renamerepo)

  • Um den Namen (Alias) einer Quelle zu ändern wird der Befehl "nr" oder "renamerepo" verwendet:
zypper nr <Alias, Nummer oder URI des Repo> <Neuer Alias>


Repo anpassen (modifyrepo)

Mit dem Befehl mr oder modifyrepo und diversen Optionen lassen sich die Eigenschaften von Repos verändern und beeinflussen.

Deaktivieren
zypper mr -d <Reponummer, Alias oder URI>
  • Das Repo "Packman" aktivieren und alle RPMs daraus nach der Installation im Cache behalten:
zypper mr -ek Packman

Zypper Cheat Sheet



weiterführende Links



Zurück zu Konsole
Zurück zur Paketmanager-Übersicht