Przygotowujesz aktualizację systemu Debian lub Ubuntu, a potem zauważasz, że pakiet oferuje niespodziewaną wersję. Zanim uruchomisz apt upgrade lub wymusisz konkretną wersję, apt-cache policy pokazuje zainstalowaną wersję, wersję kandydacką oraz repozytoria, które ją oferują.
Celem jest podjęcie decyzji na podstawie widocznych informacji. Przeczytasz konfigurację APT, porównasz wersje pakietu, zasymulujesz instalację, a następnie zatrzymasz się, jeśli repozytorium lub zależności nie odpowiadają oczekiwanym zmianom.
Przeczytaj repozytoria przed sprawdzeniem pakietu
Wersja kandydacka pochodzi z aktywnych źródeł APT. W nowszym Debianie mogą być one opisane w /etc/apt/sources.list, w plikach .list lub w plikach .sources umieszczonych w /etc/apt/sources.list.d/. Repozytorium testowe, firma mirroringowa lub źródło dodane dla oprogramowania może zmienić wybór APT.
grep -R --line-number --no-messages
-e '^deb ' -e '^Types:' -e '^URIs:' -e '^Suites:'
/etc/apt/sources.list /etc/apt/sources.list.d/
Sprawdź ponownie adres URL, wersję Debiana lub Ubuntu oraz wskazany komponent. Nie dodawaj źródła znalezionego na forum w celu uzyskania nowszej wersji. Jeśli pliki zmieniły się od ostatniej aktualizacji indeksów, uruchom sudo apt update dopiero po potwierdzeniu tego zakresu.
Porównaj zainstalowaną, kandydacką i dostępną wersję
Wybierz pakiet, który faktycznie znajduje się w Twoich repozytoriach, na przykład curl. Poniższe polecenie nic nie zmienia. Wyświetla zainstalowaną wersję, wersję kandydacką oraz tabelę priorytetów według repozytoriów.
apt-cache policy curl
apt-cache madison curl
apt list --upgradable
W poleceniu apt-cache policy Installed oznacza już zainstalowaną wersję. Candidate to ta, którą APT wybrałby przy obecnej konfiguracji. Wiersze w tabeli wskazują pochodzenie i priorytet każdej znanej wersji. apt-cache madison przedstawia krótkie zestawienie wersji i ich archiwum. Ostatnie polecenie służy do sprawdzenia, czy pakiet faktycznie znajduje się w proponowanych aktualizacjach.
Inna wersja kandydacka nie dowodzi, że aktualizacja jest odpowiednia. Wersja może pochodzić z wydania bezpieczeństwa, backportu lub repozytorium zewnętrznego. Aby potwierdzić środowisko przed szerszą interwencją, przewodnik Wersja Debiana: niezawodne polecenia do sprawdzenia przed aktualizacją pomaga w weryfikacji dystrybucji i jej numeru wersji.
Zasymuluj instalację przed wyborem wersji
Gdy kandydat wydaje się odpowiedni, zapytaj najpierw APT o symulację. Opcja -s wyświetla pakiety do zainstalowania, zaktualizowania lub usunięcia bez zapisywania na systemie.
sudo apt-get -s install curl
sudo apt-get -s install curl=WERSJA_Z_GAZETY_MADISON
Zamień WERSJA_Z_GAZETY_MADISON na wersję wyświetloną przez Twój własny komputer. Symulacja powinna pozostawać ograniczona do planowanego pakietu i oczekiwanych zależności. Jeśli proponuje usunięcie pakietu produkcyjnego, zmianę wersję Debiana lub zainstalowanie długiego łańcucha niespodziewanych pakietów, nie uruchamiaj rzeczywistego polecenia.
Rzeczywiste polecenie ma tę samą składnię, bez -s. Na serwerze wybrałbym okno konserwacji, gdy pakiet dotyka usługi sieciowej, biblioteki używanej przez wiele aplikacji lub jądra. Lista APT sama nie mówi, czy wymagane będzie ponowne uruchomienie lub test aplikacji.
Gdy kandydat nie odpowiada oczekiwanej zmianie
Unikaj przypadkowego poprawiania tej sytuacji za pomocą apt install pakiet=wersja. Przejrzyj dane wyjściowe polecenia apt-cache policy, zidentyfikuj repozytorium, które dostarcza kandydata i sprawdź pliki preferencji APT, jeśli Twoja maszyna je wykorzystuje.
grep -R --line-number --no-messages . /etc/apt/preferences /etc/apt/preferences.d/
apt-cache policy curl
apt-cache showpkg curl
Reguła pinning może zmienić priorytet archiwum. Pakiet w holdzie również pozostaje poza normalną aktualizacją. Temat ten jest odmienny od odczytu kandydata, ale blokowanie aktualizacji pakietu Debiana, a następnie unieważnianie holda wyjaśnia, jak kontrolować to zablokowanie bez mylenia holda z preferencją APT.
Dla lokalnie pobranego pliku .deb lepiej jest użyć apt install ./pakiet.deb, gdy repozytoria są dostępne. APT może wtedy rozwiązać zależności. Przewodnik Dpkg pod Linuxem: instalacja pakietu .deb bez blokowania APT traktuje ten przypadek odrębnie.
apt-cache policy to polecenie do odczytu. Zachowaj ten krok przed każdą celowaną zmianą: czytelne repozytorium, zidentyfikowany kandydat, czysta symulacja, a następnie tylko instalacja. Jeśli pochodzenie wersji pozostaje niejasne, najpierw popraw źródła lub preferencje APT.
Strona podręcznika Debiana apt-cache(8) szczegółowo opisuje podpolecenia i priorytety wyświetlane przez politykę APT.