Wyszukiwanie w witrynie

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.

  1. wstrzymaj – ta opcja służy do oznaczenia pakietu jako wstrzymanego, co zablokuje instalację, aktualizację lub usunięcie pakietu.
  2. 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:

  1. a -> Archiwum
  2. c -> Komponent
  3. o -> Pochodzenie
  4. l -> Etykieta
  5. 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ł.