V tomto článku se ponoříme do hloubky a uvidíme, jak můžeme upgradovat konkrétní balíčky v distribucích CentOS. Jednou za čas budete možná muset upgradovat některé balíčky a ostatní ponechat ve výchozích verzích. Jedním z důvodů je zachování stability balíčků, které se používají při spouštění klíčových služeb, jako jsou databáze a webové servery. Někdy může mít upgrade za následek změny v balíčku, které mohou ovlivnit normální běh služeb.
Použití yum k upgradu konkrétních balíčků v CentOS
Než cokoli jiného, možná budeme muset nejprve zkontrolovat balíčky s čekajícími aktualizacemi. Chcete-li to provést, spusťte následující příkaz
yum list updates
Možná budete muset zobrazit více verzí balíčku, který existuje ve vašem systému. Chcete-li to provést, spusťte níže uvedený příkaz
yum --showduplicates list httpd | expand
Ve výše uvedeném příkladu budete zobrazovat několik verzí balíčku httpd.
Installed Packages
httpd.x86_64 2.4.6-67.el7_4.6 @rhui-REGION-rhel-server-releases
Available Packages
httpd.x86_64 2.4.6-17.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-18.el7_0 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-19.el7_0 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-31.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-31.el7_1.1 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-40.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-40.el7_2.1 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-40.el7_2.4 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-45.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-45.el7_3.4 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-67.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-67.el7_4.2 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-67.el7_4.5 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-67.el7_4.6 rhui-REGION-rhel-server-releases
Z výsledků výše jsme si všimli, že aktuálně nainstalovaný balíček httpd je verze 2.4.6-67.el7_4.6, což je nejnovější. Co kdybyste chtěli nainstalovat konkrétní verzi balíčku, jak byste to udělali? Syntaxe pro to bude taková, jak je uvedeno níže
yum install packagename version
Pokud si například přejete přejít na nižší verzi na verzi 2.4.6-67.el7_4.5, budete muset nejprve odstranit nejnovější verzi, jak je znázorněno.
yum remove httpd
Poté nainstalujte preferovanou verzi httpd, jak je znázorněno.
yum install httpd 2.4.6-67.el7_4.5
K uzamčení verze balíčku, kterou jsme nainstalovali, a odvrácení jakýchkoli budoucích aktualizací používáme plugin versionlock. Chcete-li nainstalovat plugin, spusťte
yum install yum-versionlock
Ukázkový výstup
yum-plugin-versionlock-1.1.31-42.el7.noarch.rpm | 32 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : yum-plugin-versionlock-1.1.31-42.el7.noarch 1/1
Verifying : yum-plugin-versionlock-1.1.31-42.el7.noarch 1/1
Installed:
yum-plugin-versionlock.noarch 0:1.1.31-42.el7
Complete!
Chcete-li uzamknout naši verzi balíčku httpd, spustíme příkaz níže
yum versionlock httpd
Výstup
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos, versionlock
Adding versionlock on: 0:httpd-2.4.6-67.el7_4.5
versionlock added: 1
Upgrade konkrétních balíčků
yum upgrade package-name
Chcete-li dočasně vyloučit balíček z upgradu, spusťte následující příkaz
yum --exclude update package-name
Případně můžete použít -x
příznak namísto --exclude
yum -x exclude httpd,php
Výše uvedený příkaz vyřadí z upgradu balíčky httpd a php, protože jsou upgradovány zbývající balíčky.
Pokud chcete natrvalo zakázat aktualizace balíčku, vyhledejte yum.conf
v /etc/yum/yum.conf
Zde je ukázka toho, jak to vypadá

Chcete-li balíček vyloučit, přidejte exclude=package-name
na konci konfiguračního souboru. V tomto příkladu vyjmeme z upgradu balíčky samba , httpd, php a mariadb, jak je uvedeno níže.

Pokud se pokusíte upgradovat některý z těchto balíčků, zobrazí se No packages marked for update
chyba.

Související čtení:
- Jak vyloučit konkrétní balíčky z aktualizace Yum
- Jak vyloučit konkrétní balíček z upgradu apt-get
Příkazy si můžete vyzkoušet. Vaše zpětná vazba je velmi vítána. Děkuji.