Zypper

Z openSUSE wiki

Zypper to konsolowy menedżer pakietów. Po raz pierwszy pojawił się w openSUSE 10.2. W 10.3 przejął rolę ruga, konsolowego klienta ZMD. Jednak ze względu na dość ograniczoną funkcjonalność oraz kłopoty z rozwiązywaniem zależności, nie zdobył dużej popularności pośród zaawansowanych użytkowników. W 11.0 te niedogodności naprawiono, dzięki czemu zaawansowani użytkownicy już nie muszą instalować np. smarta do wygodnego zarządzania pakietami. Obecnie wielu użytkowników openSUSE nie wyobraża sobie zarządzania pakietami w systemie bez tego narzędzia.

Uwaga.png Uwaga: Poniższy opis został sprawdzony na wersji 12.1. Użycie zyppera w innych wersjach openSUSE może się nieco różnić.

Spis treści


Zypper na szybko

Najczęściej wykorzystywane komendy zyppepra:

zypper                 # wyświetli wszystkie informacje o użyciu zyppera 
zypper help search     # wyświetli pomoc związaną z "search", czyli wyszukiwaniem
zypper list-patches    # wyświetli informację o poprawkach
zypper patch           # nałoży poprawki (czyli zpaczuje system)
zypper search sqlite   # wyszuka pakiety, których nazwa zawiera "sqlite"
zypper remove sqlite2  # usunie sqlite2
zypper install sqlite3 # zainstaluje sqlite3
zypper install yast*   # zainstaluje wszystkie pakiety, których nazwa zawiera 'yast*'
zypper update          # aktualizuje pakiety do ich najnowszych wersji - o ile to możliwe

lub krótko:

zypper              
zypper ? search  
zypper lp       
zypper patch         
zypper se sqlite       
zypper rm sqlite2     
zypper in sqlite3     
zypper in yast*        
zypper up        

Repozytoria

Wyświetlenie listy repozytoriów

zypper repos

lub krótko:

zypper lr

Można użyć także:

zypper lr -u            # wyświetli informacje o położeniu (URI) repozytorium
zypper lr -d            # wyświetli dodatkowe informacje o repozytoriach
zypper lr -P            # wyświetli priorytet repozytoriów i posortuje je według niego
zypper lr -e moja_lista # zapisze (wyeksportuje) wszystkie zdefiniowane repozytoria do pliku 'moja_lista.repo' 

Dodawanie repozytoriów

Dodawanie repozytorium nie jest trudne, a dodawanym repozytoriom można dodać nazwę odpowiednią dla osobistych preferencji. Warto wiedzieć, że opcja -f umożliwi automatyczne odświeżanie repozytorium:

zypper addrepo -f położenie_repozytorium nazwa

lub krótko:

zypper ar -f położenie_repozytorium nazwa

Po dodaniu repozytoriów należy odświeżyć informację o nich za pomocą:

zypper refresh

lub krótko:

zypper ref

Przykładowa sesja

Poniżej dodano repozytorium zawierające stabilną wersję pakietu LibreOffice dla openSUSE 12.1.

pendrak:~ # zypper ar -f http://download.opensuse.org/repositories/LibreOffice:/Stable/openSUSE_12.1/ LibreOffice
Dodawanie repozytorium 'LibreOffice' [gotowe]
Repozytorium 'LibreOffice' zostało dodane
Włączono: Tak
Automatyczne odświeżanie: Tak
Sprawdź GPG: Tak
URI: http://download.opensuse.org/repositories/LibreOffice:/Stable/openSUSE_12.1/

Informacje o repozytoriach:

Klucze

Po dodaniu repozytoriów należy odświeżyć informację o dostępnych pakietach za pomocą:

zypper ref

Może też być konieczne zaakceptowanie klucza, którym zostało ono podpisane. Przykładowa sesja może wyglądać tak: pendrak:~ # zypper ref

Pobieranie metadanych repozytorium 'LibreOffice' [\]

Otrzymano nowy klucz podpisujący repozytorium albo pakiet:
Identyfikator klucza: 1142BDE36BA6C051
Nazwa klucza: LibreOffice OBS Project <LibreOffice@build.opensuse.org>
Odcisk klucza: B48F900581D652FA0131FC261142BDE36BA6C051
Klucz utworzony: śro, 13 paź 2010, 15:05:34
Klucz wygasa: pią, 21 gru 2012, 14:05:34
Repozytorium: LibreOffice

Odrzucić ten klucz, zaufać tymczasowo, czy zaufać na zawsze? [o/t/z/?] (o): z
Pobieranie metadanych repozytorium 'LibreOffice' [gotowe]
Budowanie pamięci podręcznej repozytorium 'LibreOffice' [gotowe]
Repozytorium "openSUSE-12.1-Update" jest aktualne.
Repozytorium "openSUSE-12.1-Non-Oss" jest aktualne.
Repozytorium "openSUSE-12.1-Oss" jest aktualne.
Odświeżono wszystkie repozytoria.

Usuwanie repozytoriów

zypper removerepo 

lub krótko:

zypper rr

Usuwać repozytoria można przy pomocy aliasu lub numeru, którym są one oznaczone.

Przykładowa sesja

Należy odszukać repozytoria do usunięcia:

# | Alias                | Nazwa                      | Włączono | Odśwież
--+----------------------+----------------------------+----------+--------
2 | LibreOffice          | LibreOffice                | Tak      | Tak    

i usunąć je:

pendrak:~ # zypper rr LibreOffice
Usuwanie repozytorium 'LibreOffice' [gotowe]
Usunięto repozytorium 'LibreOffice'.

lub:

pendrak:~ # zypper rr 2
Usuwanie repozytorium 'LibreOffice' [gotowe]
Usunięto repozytorium 'LibreOffice'.

Aktualizacja do nowszej wersji systemu zypperem

Polecenie to rozwiązuje zależności w przypadku pakietów w różnych wersjach, porzuconych, itp. Jest idealnym rozwiązaniem podczas zmiany wersji dystrybucji. W przypadku konfliktów zależności użytkownik zostanie zapytany, jak program powinien postąpić. Typowe użycie:

zypper ref             # odświeży informacje o dostępnych pakietach
zypper dup             # pobierze i zainstaluje pakiety - UWAGA! zalecany, gdy trzeba zmienić dostawców pakietów

Temat jest szerzej opisany w artykule "aktualizacja systemu do nowszej wersji".

Eksportowanie i importowanie listy repozytoriów

zypper repos --export 

lub krótko:

zypper lr -e

Repoztoria można zapisać w postaci pliku, który można w dowolnej chwili wykorzystać lub przenieść na inną maszynę. Zapisuje się je (eksportuje) tak: (np. do pliku moje_repozytoria.repo)

# zypper lr --export moje_repozytoria.repo

A wczytuje ponownie (importuje):

# zypper ar moje_repozytoria.repo

Więcej informacji