Zmiana dostawcy pakietu
Przegląd
Wersja: 11.2+ Poniższe informacje dotyczą openSUSE od wersji 11.2.
Menedżer pakietów Zypp wykorzystuje koncepcję blokady (stickyness) dostawcy. Oznacza to, że podczas aktualizacji systemu już zainstalowane pakiety nie zostaną zaktualizowane do nowszej wersji, jeśli nowsza wersja jest dostarczana przez innego dostawcę.
Zalety blokady (stickyness) dostawcy:
- Podczas aktualizacji nie ryzykujesz przypadkowego zastąpienia stabilnych wersji zainstalowanych pakietów wersjami eksperymentalnymi z innego repozytorium.
- Za każdym razem, gdy aktualizujesz, ten sam pakiet istnieje w więcej niż jednym repozytorium, nie ryzykujesz przełączania między różnymi repozytoriami.
Wady blokady (stickyness) dostawcy:
- Dostępne aktualizacje wymagające zmiany dostawcy są nieco ukryte w YaST
- Aktualizacja/zmiana pakietu u innego dostawcy wymaga nieco więcej pracy
- Od czasu do czasu menedżer pakietów zapyta Cię, czy chcesz zezwolić na zmianę dostawcy, co może być denerwujące, przerażające lub mylące.
Przeprowadzanie zmiany dostawcy
Są to różne metody przeprowadzania zmiany dostawcy.
Zmiana dostawcy dla pojedynczego pakietu
Korzystając z YaST
Wyszukaj pakiet, który chcesz zaktualizować, a następnie przejdź do karty Wersje i wybierz wersję, którą chcesz zainstalować.
Korzystając z zypper
Zainstaluj pakiet z zypper określając żądaną wersję, na przykład:
zypper install 'amarok=2.3.1'
Lub określając repozytorium:
zypper install --from [repository] [package]
Zmiana dostawcy dla całego repozytorium
Korzystając z YaST
Jeśli chcesz przełączyć wszystkie zainstalowane pakiety do wersji w określonym repozytorium, otwórz zakładkę Repozytoria, wybierz żądane repozytorium i kliknij Przełącz pakiety systemowe na wersje w tym repozytorium
Korzystając z zypper
Możesz zmienić dostawcę dla wszystkich pakietów w repozytorium, używając również zyppera:
zypper dup --from [repository]
Zezwalanie ogólnie na zmianę dostawcy
Zezwolenie na zmianę dostawcy dla wybranych repozytoriów
Możesz zdefiniować listę repozytoriów mających różnych "dostawców" jako równoważnych, tworząc plik w katalogu /etc/zypp/vendors.d/ o podobnej treści:
[main] vendors = suse,opensuse,obs://build.suse.de,Packman,http://packman.links2linux.de
- Możesz użyć dowolnej nazwy pliku, ale każdy plik w tym katalogu odzwierciedla grupę równoważnych dostawców.
- Libzypp dokonuje porównania ciągów (jak strncmp, bez rozróżniania wielkości liter), podczas gdy początek ciągów jest porównywany tylko. Np. dostawca "opensuse11.0" jest zgodny z "openSUSE".
Wyłączanie blokady (stickiness) dostawcy
Jeśli chcesz, możesz całkowicie wyłączyć blokadę (stickiness) dostawcy - w tym przypadku menedżer pakietów nie poprosi o pozwolenie na zmianę dostawcy dla pakietów, a aktualizacja po prostu zainstaluje każdy pakiet, który ma najwyższy numer wersji, bez względu na to, skąd pochodzi.
In /etc/zypp/zypp.conf set
solver.allowVendorChange = true
Teraz „zypper up” zainstaluje najnowsze wersje dostępne od dowolnego dostawcy. I YaST oznaczy pakiety niebieskim tekstem, w których aktualizacja jest dostępna, nawet jeśli aktualizacja pochodzi od innego dostawcy.