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.
- hold – tato možnost slouží k označení balíčku jako pozdrženého, což zablokuje instalaci, aktualizaci nebo odstranění balíčku.
- 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:
- a -> Archivovat
- c -> Komponenta
- o -> Původ
- l -> Štítek
- 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.