Vyhledávání na webu

Jak zakázat/uzamknout nebo zakázat aktualizace balíčků pomocí nástroje Apt


APT znamená Advanced Packaging Tool je další správce balíčků, který se nachází v systémech založených na Linuxu. Apt, původně navržený jako front-end pro dpkg pro práci s balíčky .deb, se mu podařilo ukázat jeho viditelnost na Mac OS, Open Solaris atd.

Chcete se naučit a ovládat příkazy APT a DPKG ke správě správy balíčků Debianu, pak použijte naše podrobné články, které pokrývají více než 30+ příklady obou nástrojů.

V tomto článku uvidíme různé techniky, jak zakázat/uzamknout balíček z instalace, upgradu a odstranění v Debian Linuxu a jeho derivátech, jako je Ubuntu a Linux Mint.

1. Zakázat/uzamknout balíček pomocí „apt-mark“ s možností podržení/odemknutí

Příkaz apt-mark označí nebo zruší označení softwarového balíčku jako automaticky nainstalovaného a používá se s možností hold nebo unhold.

  1. hold – tato možnost slouží k označení balíčku jako pozdrženého, což zablokuje instalaci, aktualizaci nebo odstranění balíčku.
  2. unhold – tato možnost slouží k odstranění dříve nastaveného pozastavení balíčku a umožňuje instalaci, aktualizaci a odstranění balíčku.

Chcete-li například, aby balíček řekl apache2 nedostupný pro instalaci, aktualizaci nebo odinstalaci, můžete použít následující příkaz na terminálu s právy root:

apt-mark hold apache2

Chcete-li tento balíček zpřístupnit pro aktualizaci, stačí nahradit „hold“ za „unhold“.

apt-mark unhold apache2

Blokování aktualizací balíčků pomocí souboru předvoleb APT

Dalším způsobem, jak zablokovat aktualizace konkrétního balíčku, je přidat jeho položku do /etc/apt/preferences nebo /etc/apt/preferences.d/official-package-repositories.pref soubor. Tento soubor nese odpovědnost za aktualizaci nebo blokování určitých aktualizací balíčku podle priority určené uživatelem.

Chcete-li balíček zablokovat, stačí zadat jeho název, další funkce a jakou prioritu jej chcete převzít. Zde by priorita < 1 blokovala balíček.

Chcete-li zablokovat jakýkoli balíček, zadejte jeho podrobnosti do souboru /etc/apt/preferences takto:

Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>

Chcete-li například zablokovat aktualizace pro balíček apache2, přidejte položku, jak je znázorněno:

Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1

Pro další identifikaci balíčku, na který aplikujeme prioritu Pin, můžeme použít další možnosti s klíčovým slovem release. Ta klíčová slova jsou:

  1. a -> Archivovat
  2. c -> Komponenta
  3. o -> Původ
  4. l -> Štítek
  5. n -> Architektura

jako :

Pin: release o=Debian,a=Experimental

Znamenalo by to stáhnout uvedený balíček z experimentálního archivu balíčků Debianu.

Zakázat aktualizaci balíčku pomocí APT Autoremove File

Dalším způsobem, jak zakázat balíček z instalace, je aktualizovat jeho záznam v jednom ze souborů obsažených v adresáři /etc/apt/apt.conf.d/, což je 01autoremove.

Ukázkový soubor je uveden níže:

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";
  };
};

Chcete-li nyní přidat jakýkoli balíček na černou listinu, stačí zadat jeho název do Never-MarkAuto-Sections. Stačí zadat název balíčku na konci do Never-MarkAuto-Section a uložit a zavřít soubor. To by zablokovalo apt pro hledání dalších aktualizací tohoto balíčku.

Chcete-li například zablokovat balíček před aktualizací, přidejte záznam, jak je znázorněno:

Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
        "apache2*";
  };
};

Vlastní výběr balíčku pro aktualizaci

Další alternativou je vybrat si, co chcete aktualizovat. Nástroj apt vám dává svobodu vybrat si, co chcete aktualizovat, ale k tomu byste měli vědět, jaké všechny balíčky jsou k dispozici pro aktualizaci.

Pro takovou věc se může ukázat jako užitečná následující sada příkazů:

a. Zobrazí seznam balíčků, jejichž aktualizace čekají na vyřízení.

apt-get -u -V upgrade

b. Chcete-li nainstalovat pouze vybrané balíčky.

apt-get --only-upgrade install <package-name>

Závěr

V tomto článku jsme vysvětlili několik způsobů, jak zakázat/zablokovat nebo zakázat aktualizace balíčků pomocí APT. Pokud znáte jiný preferovaný způsob, dejte nám vědět prostřednictvím komentářů nebo pokud jste hledali příkaz yum pro zakázání/uzamčení aktualizace balíčku, přečtěte si tento článek níže.