Když provedete aktualizaci yum, stáhne se nejnovější verze všech balíčků nainstalovaných ve vašem systému, a upgradujte je na nejnovější verzi.
Můžete být v situaci, kdy možná nebudete chtít, aby yum automaticky aktualizoval jeden (nebo více) konkrétních balíčků.
V těchto situacích použijte možnost vyloučení yum, jak je uvedeno v příkladech níže.
1. Vyloučit jeden balíček pomocí volby -x
Například v tomto systému používáme PHP 5.1 a vlastní php aplikace běžící na tomto systému zatím není testována s žádnou jinou novou verzí PHP.
# rpm -q php php-5.1.0-27.el6_5.x86_64
Takže v tomto případě, když provádíme aktualizaci, chceme vyloučit pouze jeden konkrétní balíček, kterým je php. Jak vidíme níže, následující znamená, že balíček php bude aktualizován na verzi 5.3.3, když provedeme příkaz ‚yum update‘.
# yum check-update php php.x86_64 5.3.3-40.el6_6 updates
Následující vyloučí pouze jeden balíček (php) během aktualizace yum.
# yum -x php update
2. Vyloučit více balíčků pomocí volby -x
Můžete vyloučit více balíčků zadáním více voleb -x, jak je uvedeno níže:
yum -x php -x httpd update
Můžete také vyloučit více než jeden balíček zadáním seznamu balíčků oddělených čárkou. Následující se bude chovat přesně stejně jako výše.
yum -x php,httpd update
3. Vyloučit více balíčků (např. balíčky jádra) pomocí zástupného znaku
Ve většině situací možná nebudete chtít, aby aktualizace yum automaticky aktualizovala jádro.
Než provedete skutečnou aktualizaci yum, můžete provést kontrolu yum, která zobrazí všechny balíčky, které upgraduje během aktualizace yum.
Jak vidíte níže, v tomto příkladu existují tři balíčky související s jádrem, které budou upgradovány aktualizací yum.
# yum check-update | grep -i kernel kernel.x86_64 2.6.32-504.1.3.el6 updates kernel-firmware.noarch 2.6.32-504.1.3.el6 updates kernel-headers.x86_64 2.6.32-504.1.3.el6 updates
Místo zadávání všech jednotlivých názvů balíčků v seznamu vyloučení -x můžeme jednoduše použít zástupné znaky shell glob, jak je uvedeno níže. Následující vyloučí všechny balíčky související s jádrem, které se začnou upgradovat během aktualizace yum.
yum -x kernel* update
4. Více seznamů zástupných znaků ve volbě -x
Můžete také zadat více seznamů zástupných znaků ve volbě -x.
Jak vidíte níže, následující indikace znamená, že existuje několik php balíčků, které budou upgradovány během příští aktualizace yum.
# yum check-update | grep -i php php.x86_64 5.3.3-40.el6_6 updates php-cli.x86_64 5.3.3-40.el6_6 updates php-common.x86_64 5.3.3-40.el6_6 updates php-xml.x86_64 5.3.3-40.el6_6 updates
Pokud chcete během příští aktualizace yum vyloučit všechny balíčky související s php a jádrem, můžete použít následující. Upozorňujeme, že v tomto příkladu byste měli použít „ “.
yum -x 'php*' -x 'kernel*' update
5. Použití –exclude místo -x
Můžete také použít –exclude místo -x, jak je uvedeno níže:
yum --exclude php update yum --exclude httpd update yum --exclude kernel update yum -exclude php*,httpd*,kernel* update
6. Vyloučit balíčky pomocí souboru yum.conf
Místo určení balíčků, které mají být vyloučeny v příkazovém řádku, můžete je zadat v souboru /etc/yum.conf.
Chcete-li například vyloučit všechny balíčky php, httpd a kernel, které mají být vyloučeny z aktualizace yum, přidejte následující řádek:
exclude=php* httpd* kernel*
Nebo spusťte následující příkaz:
echo "exclude=php* httpd* kernel*" >> /etc/yum.conf
7. Použijte seznam oddělený čárkami
Můžete také vyloučit více než jeden balíček zadáním seznamu balíčků se zástupnými znaky oddělených čárkou. Následující se bude chovat přesně stejně jako výše.
yum -x php*,kernel* update
Chcete-li být konzistentní se způsobem, jakým jsme ukázali ostatní příklady pomocí volby -x výše, můžete také použít čárku (místo pouhé mezery) k oddělení několika balíčků, jak je uvedeno níže:
# vi /etc/yum.conf exclude=php*,httpd*,kernel*
8. Vyloučit parametr uvnitř vlastního souboru úložiště
Místo zadávání parametru vylučování v hlavním souboru yum.conf jej můžete zadat také v samostatném souboru úložiště.
Pokud jste například nainstalovali mongodb, budete mít mongodb.repo v adresáři /etc/yum.repos.d. V tomto souboru mongodb.repo můžete zadat seznam vyloučených balíčků pro úložiště mongodb.
# vi /etc/yum.repos.d/mongodb.repo exclude=mongo*
9. Simulovat Yum Exclude Check pomocí check-update (Dry-run -x)
Můžete také zadat volbu -x spolu s check-update. To vám pomůže zkontrolovat, zda volba -x, kterou jste zadali v příkazovém řádku nebo v souboru yum.conf, funguje podle očekávání.
Následující příklad například znamená, že jádro bude upgradováno během aktualizace yum.
# yum check-update | grep -i kernel kernel.x86_64 2.6.32-504.1.3.el6 updates kernel-firmware.noarch 2.6.32-504.1.3.el6 updates kernel-headers.x86_64 2.6.32-504.1.3.el6 updates
Následující ukazuje, že parametr -x bude fungovat podle očekávání, protože ve výsledku nic nevrátil.
# yum -x kernel* check-update | grep -i kernel
Řekněme například, že v souboru yum.conf je přítomen následující řádek vyloučení.
# grep exclude /etc/yum.conf exclude=php*,httpd*,kernel*
Následující text pak naznačuje, že seznam výjimek uvedený ve výše uvedeném souboru /etc/yum.conf bude fungovat podle očekávání, protože kontrolní aktualizace tyto balíčky (včetně jádra) v následujícím výstupu nezobrazila.
# yum check-update | egrep 'php|httpd|kernel'
10. Ignorujte soubor Exclude from yum.conf
Pokud chcete zakázat výjimky uvedené v souboru yum.conf. tj. Pokud nechcete, aby aktualizace yum zohledňovala seznam výjimek, který je uveden v souboru yum.conf, můžete použít volbu –disableexcludes z příkazového řádku.
V našem předchozím příkladu jsme vyloučili balíčky php, httpd a kernel, které mají být aktualizovány aktualizací yum.
Pokud však chcete, aby yum ignoroval tento seznam vyloučení (tj. deaktivoval vyloučení) a pokračoval v upgradu php, httpd a jádra jako součást běžného příkazu yum update, proveďte následující:
yum --disableexcludes=all update
Níže jsou uvedeny tři možné hodnoty, které můžete zadat do parametru disableexcludes
- vše Zakázat všechna vyloučení
- hlavní Zakázat výjimky uvedené v hlavní části souboru yum.conf
- repoid Zakázat vyloučení zadaná pro dané ID úložiště
Pokud chcete zakázat výjimky pouze pro konkrétní vlastní úložiště, můžete zadat id úložiště (což je 1. sloupec v příkazu yum repolist, jak je znázorněno níže).
# yum repolist repo id repo name status mongodb MongoDB Repository 240 base CentOS-6 - Base 6,518 extras CentOS-6 - Extras 35 updates CentOS-6 - Updates 315
Následující příkaz zakáže (ignoruje) seznam vyloučení uvedený v souboru mongodb.repo v adresáři /etc/yum.repos.d.
yum --disableexcludes=mongodb update