Správce balíčků je software, který umožňuje uživateli v případě instalace nového softwaru, up-gradace systému nebo aktualizace jakéhokoli specifického softwaru a podobných věcí. V případě systémů založených na Linuxu, kde jeden software má mnoho závislostí, které musí být přítomny v systému pro úplnou instalaci tohoto softwaru, se takový software jako správce balíčků stává velmi potřebným nástrojem na každém systému.
Každá distribuce Linuxu se dodává se svým výchozím správcem balíčků pro výše uvedené funkce, ale ze všech těchto nejčastěji nalezených jsou:yum na RHEL a Fedora systémů (kde je v současné době nahrazován DNF z Fedory 22+ dále) a apt z Debianu.
Pokud hledáte APT nástroj k blokování nebo zakázání určitých aktualizací konkrétních balíčků, pak byste si měli přečíst tento článek.
Zakázat/uzamknout nebo zakázat aktualizaci balíčku Certian pomocí APTDnf nebo Danified yum nahrazuje výraz yum na Fedoře systémů, což je další z našeho seznamu. Pokud jsou správně prozkoumáni, lze tyto správce balíčků použít pro následující funkce:
- Instalace nového softwaru z úložiště.
- Vyřešte závislosti softwaru instalací těchto závislostí před instalací softwaru.
- Udržování databáze závislostí každého softwaru.
- Přejděte na nižší verzi jakéhokoli stávajícího softwaru.
- Upgrade verze jádra.
- Výpis balíčků dostupných k instalaci.
Již jsme probrali podrobné články samostatně o jednotlivých správcích balíčků s praktickými příklady, měli byste si je přečíst, abyste mohli ovládat a spravovat správu balíčků ve svých příslušných distribucích Linuxu.
Přečtěte si také:
- Ovládnutí příkazu Yum pomocí těchto 20 praktických příkladů
- 27 DNF příkazů pro správu balíčků ve verzích Fedory 22+
- Naučte se 25 příkazů APT pro správu balíčků Ubuntu
V článku uvidíme, jak zamknout/zakázat určité aktualizace balíčků pomocí správce balíčků Yum v systémech RHEL/CentOS a Fedora (platí do Fedory 21 , později novější verze Fedory se dodává s dnf jako výchozím správcem balíčků).
Zakázat/zamknout aktualizace balíčků pomocí Yum
Aktualizátor žlutého psa, upraveno (mňam ) je nástroj pro správu balíčků v distribucích založených na RedHat, jako je CentOS a Fedora. Níže jsou popsány různé strategie používané k uzamčení/deaktivaci aktualizací balíčků pomocí Yum:
1. Trvale zakázat balíček pro instalaci nebo aktualizaci
1. Otevřete a upravte soubor yum.conf
soubor, který se nachází v /etc/yum.conf nebo v /etc/yum/yum.conf .
Vypadá to níže:
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release ...
Zde pro vyloučení určitého balíčku z instalace nebo up-gradace stačí přidat proměnnou vyloučit spolu s názvem balíčku, který chcete vyloučit. Například, pokud chci vyloučit všechny python-3
balíčky z aktualizace, pak pouze připojím následující řádek do yum.conf
:
exclude=python-3*
Chcete-li vyloučit více než jeden balíček, oddělte jejich názvy mezerou.
exclude=httpd php
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release exclude=python-3* [Exclude Single Package] exclude=httpd php [Exclude Multiple Packages] ...
Poznámka :zahrnout tyto balíčky, ignorovat položky v yum.conf
, použijte „-disableexcludes ” a nastavte jej na all|main|repoid , kde ‘hlavní‘ jsou zadané v yum.conf a ‚repoid‘ jsou ty, jejichž vyloučení je uvedeno v repos.d adresář, jak bude vysvětleno dále.
Nyní se pokusíme nainstalovat nebo aktualizovat zadané balíčky a uvidíme, že příkaz yum zakáže jejich instalaci nebo aktualizaci.
# yum install httpd php Loaded plugins: fastestmirror, langpacks, versionlock Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in Nothing to do
# yum update httpd php Loaded plugins: fastestmirror, langpacks, versionlock Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in No packages marked for update
2. Dočasně zakázat balíček pro instalaci nebo aktualizaci
2. Výše bylo trvalé řešení pro vyloučení balíčku, protože pokud soubor neupravíte, nebude tento balíček aktualizován. Zde je také dočasné řešení. Právě v době, kdy se chystáte na jakoukoli aktualizaci, použijte -x
přepněte v příkazu yum, abyste vyloučili balíček, který nechcete aktualizovat, například:
# yum -x python-3 update
Výše uvedený příkaz aktualizuje všechny balíčky, jejichž aktualizace jsou k dispozici, kromě python-3
ve vašem systému.
Zde pro vyloučení více balíčků použijte -x
vícekrát nebo oddělte názvy balíků pomocí ','
v jediném přepínači.
# yum -x httpd -x php update OR # yum -x httpd,php update
3. Pomocí --exclude
přepínač funguje stejně jako -x , stačí nahradit -x s –vyloučit a předejte ','
oddělený seznam názvů balíčků.
# yum --exclude httpd,php
3. Zakázat aktualizace balíčků pomocí úložiště
4. Pro jakýkoli balíček nainstalovaný z jakéhokoli externího zdroje přidáním úložiště existuje další způsob, jak v budoucnu zastavit jeho upgradování. To lze provést úpravou jeho .repo
soubor, který je vytvořen v /etc/yum/repos.d/ nebo /etc/yum.repos.d adresář.
Přidejte možnost vyloučit s názvem balíčku v úložišti . Líbí se:Chcete-li vyloučit jakýkoli balíček, řekněte víno z epel repo , přidejte následující řádek do epel.repo
soubor:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 exclude=wine
Nyní zkuste aktualizovat víno balíček, zobrazí se chyba, jak je uvedeno níže:
# yum update wine Loaded plugins: fastestmirror, langpacks, versionlock epel/x86_64/metalink | 5.6 kB 00:00 Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in No Match for argument: wine No package wine available. No packages marked for update
4. Zakázat aktualizaci balíčku pomocí možnosti versionlock
5. Dalším způsobem v yum, jak zamaskovat verzi libovolného balíčku, a učinit jej tak nedostupným pro aktualizaci, je použít versionlock
možnost yum, ale k tomu musíte yum-plugin-versionlock balíček nainstalovaný v systému.
# yum -y install yum-versionlock
Chcete-li například uzamknout verzi balíčku, řekněte httpd do 2.4.6 stačí napsat následující příkaz jako root.
# yum versionlock add httpd
Ukázkový výstup
Loaded plugins: fastestmirror, langpacks, versionlock Adding versionlock on: 0:httpd-2.4.6-40.el7.centos versionlock added: 1
Chcete-li zobrazit zamčené balíčky, použijte následující příkaz, který zobrazí seznam balíčků, jejichž verze byla uzamčena.
# yum versionlock list httpd
Ukázkový výstup
Loaded plugins: fastestmirror, langpacks, versionlock 0:httpd-2.4.6-40.el7.centos.* versionlock list done
Závěr
Toto je několik tipů, které vám pomohou zakázat/zamknout aktualizace balíčků pomocí správce balíčků yum. Pokud máte nějaké další triky, jak udělat stejné věci, můžete je s námi okomentovat.