Jak wyłączyć/zablokować lub umieścić na czarnej liście aktualizacje pakietów za pomocą narzędzia Apt
APT oznacza, że Advanced Packaging Tool to kolejny menedżer pakietów dostępny w systemach opartych na systemie Linux. Początkowo zaprojektowany jako interfejs dla dpkg do pracy z pakietami .deb, apt udało się pokazać swoją widoczność w systemach Mac OS, Open Solaris itp.
Chcesz poznać i opanować polecenia APT i DPKG do zarządzania pakietami Debiana, a następnie skorzystaj z naszych szczegółowych artykułów, które omówią ponad ponad 30 przykłady obu narzędzi.
W tym artykule zobaczymy różne techniki wyłączania/blokowania pakietu przed instalacją, aktualizacją i usuwaniem w systemie Debian Linux i jego pochodnych, takich jak Ubuntu i Linux Mint.
1. Wyłącz/zablokuj pakiet za pomocą „apt-mark” z opcją wstrzymania/przytrzymania
Polecenie apt-mark zaznaczy lub odznaczy pakiet oprogramowania jako instalowany automatycznie i jest używane z opcją wstrzymaj lub przytrzymaj.
- wstrzymaj – ta opcja służy do oznaczenia pakietu jako wstrzymanego, co zablokuje instalację, aktualizację lub usunięcie pakietu.
- unhold – ta opcja służy do usunięcia wcześniej ustawionej blokady pakietu i umożliwienia instalacji, aktualizacji i usunięcia pakietu.
Na przykład, aby sprawić, że pakiet Apache2
będzie niedostępny do instalacji, aktualizacji lub dezinstalacji, możesz użyć następującego polecenia na terminalu z uprawnieniami roota:
apt-mark hold apache2
Aby udostępnić ten pakiet do aktualizacji, po prostu zamień „wstrzymaj” na „cofnij”.
apt-mark unhold apache2
Blokowanie aktualizacji pakietów przy użyciu pliku preferencji APT
Innym sposobem blokowania aktualizacji konkretnego pakietu jest dodanie jego wpisu w /etc/apt/preferences
lub /etc/apt/preferences.d/official-package-repositories.pref
plik. Plik ten odpowiada za aktualizację lub blokowanie niektórych aktualizacji pakietów zgodnie z priorytetem określonym przez użytkownika.
Aby zablokować paczkę wystarczy podać jej nazwę, dodatkową cechę i jaki priorytet chcesz jej nadać. Tutaj priorytet < 1
zablokowałby pakiet.
Aby zablokować dowolny pakiet, wystarczy wpisać jego szczegóły w pliku /etc/apt/preferences
w następujący sposób:
Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>
Na przykład, aby zablokować aktualizacje pakietu Apache2, dodaj wpis, jak pokazano:
Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1
Możemy użyć innych opcji ze słowem kluczowym release w celu dalszej identyfikacji pakietu, w którym stosujemy priorytet PIN. Te słowa kluczowe to:
- a -> Archiwum
- c -> Komponent
- o -> Pochodzenie
- l -> Etykieta
- n -> Architektura
tak jak :
Pin: release o=Debian,a=Experimental
Oznaczałoby to pobranie podanego pakietu z eksperymentalnego archiwum pakietów Debiana.
Dodaj aktualizację pakietu do czarnej listy za pomocą pliku APT Autorove
Innym sposobem umieszczenia pakietu na czarnej liście z instalacji jest aktualizacja jego wpisu w jednym z plików zawartych w katalogu /etc/apt/apt.conf.d/
, czyli 01autoremove.
Przykładowy plik pokazano poniżej:
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
};
VersionedKernelPackages
{
# linux kernels
"linux-image";
"linux-headers";
"linux-image-extra";
"linux-signed-image";
# kfreebsd kernels
"kfreebsd-image";
"kfreebsd-headers";
# hurd kernels
"gnumach-image";
# (out-of-tree) modules
".*-modules";
".*-kernel";
"linux-backports-modules-.*";
# tools
"linux-tools";
};
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
};
};
Teraz, aby umieścić dowolny pakiet na czarnej liście, wystarczy wpisać jego nazwę w Never-MarkAuto-Sections
. Po prostu wpisz nazwę pakietu na końcu w Never-MarkAuto-Section
i zapisz i zamknij plik. Zablokowałoby to apt wyszukiwanie dalszych aktualizacji tego pakietu.
Na przykład, aby umieścić na czarnej liście pakiet do aktualizacji, dodaj wpis jak pokazano:
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
"apache2*";
};
};
Wybór pakietu niestandardowego do aktualizacji
Inną alternatywą jest wybranie tego, co chcesz zaktualizować. Narzędzie apt daje Ci swobodę wyboru tego, co chcesz zaktualizować, ale w tym celu powinieneś wiedzieć, jakie pakiety są dostępne do aktualizacji.
W takim przypadku pomocny może okazać się następujący zestaw poleceń:
a. Aby wyświetlić listę pakietów oczekujących na aktualizacje.
apt-get -u -V upgrade
b. Aby zainstalować tylko wybrane pakiety.
apt-get --only-upgrade install <package-name>
Wniosek
W tym artykule wyjaśniliśmy kilka sposobów wyłączania/blokowania lub umieszczania na czarnej liście aktualizacji pakietów przy użyciu metody APT. Jeśli znasz inny preferowany sposób, daj nam znać w komentarzach lub jeśli szukasz polecenia yum, aby wyłączyć/zablokować aktualizację pakietu, przeczytaj poniższy artykuł.