Zmiana dostawcy pakietu

Skocz do: nawigacja, szukaj
W tym artykule wyjaśniono pojęcie blokady (stickyness) dostawcy i podano informacje o tym, jak zastąpić domyślne zachowanie.

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ć.

600px

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

600px

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 znaleźć dostawcę z YaST (karta "Wersje") lub wierszem poleceń "zypper if <package>".
  • 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.