Jak již víte, všechny nainstalované balíčky můžeme upgradovat pomocí apt upgrade
příkaz v Debianu, Ubuntu a dalších systémech založených na Debianu. Během tohoto procesu aktualizace budou aktualizovány všechny nainstalované balíčky, budou nainstalovány některé další balíčky (tj. závislosti) a některé nepotřebné balíčky budou odstraněny. Správce balíčků Apt dělá všechny tyto věci automaticky, aby uživatelům pomohl udržovat čistý systém. Apt má také možnost zabránit automatické instalaci, aktualizaci nebo odstranění balíčku v Debianu, Ubuntu a jeho variantách. V této příručce probereme různé metody, jak zadržet nebo zabránit upgradu balíčku v Debianu, Ubuntu a jeho derivátech, jako je Linux Mint a Pop!_OS.
Proč by někdo chtěl bránit aktualizaci balíčku?
Možná se divíte, proč by někdo chtěl zadržovat balíček po aktualizaci apt. Nepomáhá nám aktualizace balíčků na nejnovější verzi k zabezpečení systému? Samozřejmě ano! Ale za určitých okolností to dělat nechcete. Zde je několik důvodů, proč zabránit aktualizaci balíčků:
- Aktuální verze balíčku funguje dobře, takže si možná myslíte, že není nutné ji upgradovat.
- Jiná aplikace vyžaduje určitou verzi, aby správně fungovala.
- Balík, který se chystáte aktualizovat, může být problematický. Přestože vývojáři balíčky důkladně otestují, než je vloží do repozitářů, někdy mohou nevědomky poslat nestabilní balíčky, které naruší váš systém.
- Úspora šířky pásma. Možná nebudete chtít aktualizovat balíček, který zabírá více než 500 MB.
Ať už je důvod jakýkoli, pokud jste někdy chtěli zabránit změnám balíčku v systémech Debian nebo Ubuntu, tento návod vám pomůže.
Zadržení nebo zabránění upgradu balíčku v Debianu, Ubuntu
Balíčky můžeme zabránit/podržet/ignorovat/vyloučit z upgradu apt buď z příkazového řádku, nebo pomocí grafického nástroje pro správu balíčků s názvem Synaptic správce balíčků.
Nejprve se podívejme na metody příkazového řádku!
1. Zabránit automatické instalaci, aktualizaci nebo odstranění balíčku pomocí příkazu apt-mark v Debianu, Ubuntu
Apt-mark se používá k zobrazení, nastavení a zrušení různých nastavení pro balíček, jako je označení balíčku jako automaticky/ručně nainstalovaného nebo změna dpkg
výběry jako podržet, nainstalovat, odinstalovat a vyčistit, které jsou respektovány např. pomocí apt-get dselect-upgrade
nebo aptitude
.
Chcete-li zabránit změnám balíčku (instalaci, odinstalaci a aktualizaci), použijte apt-mark
příkaz poskytuje následující tři dílčí příkazy:
- zadržet
- uvolnit
- showhold
hold
příkaz se používá k označení balíčku jako pozdrženého, což zabrání automatické instalaci, aktualizaci nebo odstranění balíčku.
unhold
příkaz se používá ke zrušení dříve nastaveného pozastavení balíčku, aby byly všechny akce znovu povoleny.
A showhold
příkaz se používá k zobrazení seznamu podržených balíčků.
Podívejme se na příklad. Chystám se zabránit balíčku (např. htop
) nelze automaticky nainstalovat, aktualizovat nebo odebrat pomocí příkazu:
$ sudo apt-mark hold htop
Ukázkový výstup:
htop set on hold.
Uzamčený htop
balíček zůstane ve stejné verzi i po aktualizaci systému.
Chcete-li zobrazit pozastavené balíčky, spusťte:
$ sudo apt-mark showhold
Chcete-li balíček uvolnit, stačí spustit:
$ sudo apt-mark unhold htop
Ukázkový výstup:
Canceled hold on htop.

Upozorňujeme, že tento způsob nezabrání ručnímu odstranění balíčku . Stále můžete odstranit zamčené balíčky pomocí apt-get remove <packagename>
příkaz.
Tato metoda pouze zabrání automatické instalaci, aktualizaci, upgradu nebo odebrání aplikace během aktualizace systému. Držení balíčku ve skutečnosti znamená, že říkáte správci balíčků, aby zachoval aktuální verzi bez ohledu na to, co se děje, i když je k dispozici nová verze . Tento trik může být velmi užitečný při zadržování grafických ovladačů. Je také užitečné, pokud se novější verze aktuálně fungujícího programu po aktualizaci rozbije.
Kdykoli se pokusíte aktualizovat systém pomocí příkazů sudo apt-get update
nebo sudo apt-get upgrade
, označené balíčky budou stále stejné verze v době, kdy balíček držíte.
Apt-mark není jediný nástroj CLI, který zabraňuje změnám balíčků v Debianu nebo Ubuntu. Existují dva další způsoby, jak pozastavit balíček a později jej pozdržet z příkazového řádku.
2. Zabránit aktualizaci balíčku pomocí dpkg v Debianu, Ubuntu
Dpkg je nástroj příkazového řádku pro instalaci, sestavování, odstraňování a správu balíčků Debianu.
Chcete-li vložit balíček, například htop , pozastaveno pomocí dpkg, spusťte:
$ echo "htop hold" | sudo dpkg --set-selections
Stav balíčku, který jste dříve pozastavili, můžete zobrazit, spusťte:
$ dpkg --get-selections | grep "htop"
htop hold
Jak můžete vidět, htop je pozastaven.
Chcete-li zobrazit stav všech balíčků, spusťte:
$ dpkg --get-selections
Chcete-li balíček uvolnit, postupujte takto:
$ echo "htop install" | sudo dpkg --set-selections

3. Podržte balíček z upgradu pomocí aptitude v Debianu, Ubuntu
Aptitude je textové rozhraní k systému balíčků Debian GNU/Linux. Umožňuje uživateli provádět různé úlohy správy balíčků, jako je instalace, aktualizace, aktualizace, výpis a odstranění balíčků.
Chcete-li balíček pozastavit a zabránit jeho automatické aktualizaci, spusťte:
$ sudo aptitude hold htop
Chcete-li zobrazit stav balíčku, spusťte:
$ aptitude show htop
Ukázkový výstup:
Package: htop
Version: 2.2.0-2build1
State: installed [held]
Automatically installed: no
Priority: optional
Section: utils
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 225 k
Depends: libc6 (>= 2.15), libncursesw6 (>= 6), libtinfo6 (>= 6)
Suggests: lsof, strace
Description: interactive processes viewer
Htop is an ncursed-based process viewer similar to top, but it allows
one to scroll the list vertically and horizontally to see all processes
and their full command lines.
Tasks related to processes (killing, renicing) can be done without
entering their PIDs.
Homepage: https://hisham.hm/htop/
Jak vidíte ve výše uvedeném výstupu, balíček htop je pozastaven před aktualizací.
Chcete-li balíček uvolnit, jednoduše postupujte takto:
$ sudo aptitude unhold htop

4. Zabránit automatické instalaci, aktualizaci nebo odebrání balíčku pomocí správce balíčků Synaptic v Debianu, Ubuntu
Pokud máte Synaptic správce balíčků nainstalovaný ve vašem systému, můžete snadno uzamknout balíček před instalací, aktualizací, aktualizací nebo odstraněním.
Otevřete Správce Synaptic a vyhledejte balíček, který chcete držet. Poté klikněte na Balík z panelu nabídek a klikněte na přidržet .

A je to. Nyní se balíku během aktualizace systému nedotknete, pokud jej ponecháte pozastavený.
Chcete-li jej odložit, přejděte na Synaptic -> Balíček -> Odemknout verze.
Pokud správce balíčků Synaptic není ve vašem systému nainstalován, můžete jej nainstalovat pomocí příkazu:
$ sudo apt install synaptic
Závěr
V tomto tutoriálu jste se naučili, jak zabránit automatické instalaci, aktualizaci a odstranění balíčku v systémech založených na Debianu, jako je Ubuntu, Linux Mint a Pop!_OS atd. I když zadržování balíčků může být v určitých případech užitečné, ponechte ve svém systému Ubuntu bezpečnostní mezery. Člověk musí vědět, kdy podržet nebo vyjmout balíčky. Tuto funkci používejte opatrně. Hodně štěstí!
Související čtení:
- Jak ignorovat balíček z upgradu v Arch Linuxu
Vybraný obrázek od studia erfouris z Pixabay.