Otázka:V systému mám několik úložišť yum. Například centos, epel, docker, mongo atd. Když spustím příkaz yum update, aktualizují se nainstalované balíčky ze všech úložišť. Jak mohu vyloučit konkrétní úložiště během aktualizace yum?
Odpověď:Chcete-li během aktualizace yum vyloučit balíčky, které patří do konkrétního úložiště, použijte kteroukoli ze dvou metod vysvětlených v tomto tutoriálu.
Mějte také na paměti, že namísto vyloučení celého úložiště může také vyloučit konkrétní balíček:10 Yum Exclude Příklady pro přeskočení balíčků pro Linux Yum Update (How to Yum Exclude Kernel Updates)
1. Získat seznam úložiště
Chcete-li zobrazit všechna dostupná úložiště ve vašem systému, spusťte yum repolist, jak je uvedeno níže.
# yum repolist repo id repo name status base CentOS-6 - Base 6,575 extras CentOS-6 - Extras 62 updates CentOS-6 - Updates 1,622 dockerrepo Docker Repository 2 mongodb-org-3.0 MongoDB Repository 75 repolist: 8,336
Ve výše uvedeném příkladu máme následující:
- První tři výše uvedená úložiště jsou hlavní úložiště CentOS:základní, extra a aktualizace
- dockerrepo je úložiště třetí strany, které obsahuje balíčky související s kontejnerem Docker
- mongodb-org-3.0 je úložiště třetí strany, které obsahuje balíčky související s MongoDB.
Když provedete aktualizaci yum, jak je uvedeno níže, upgraduje všechny balíčky, které jsou již nainstalovány ve vašem systému, na nejnovější verzi dostupnou ze všech výše uvedených úložišť.
yum update
Pokud již máte na svém systému nainstalovaný mongodb a když provedete výše uvedenou „yum aktualizaci“, upgraduje také balíčky mongodb na nejnovější verzi.
Pokud nechcete upgradovat mongodb, když provádíte „yum update“, měli byste to vyloučit během aktualizace yum, jak je vysvětleno v následující sekci.
Také, pokud chcete vědět, ke kterému repozitáři patří konkrétní balíček, abyste mohli toto úložiště vyloučit z upgradu, použijte příkaz yum info, jak je ukázáno níže.
yum info package-name | grep -i repo
Pokud jste novým příkazem yum:15 příkladů příkazu yum pro Linux – instalace, odinstalace, aktualizace balíčků
2. Vyloučit úložiště z aktualizace Yum (metoda 1)
Spolu s aktualizací yum můžete použít volbu –disablerepo=název-úložiště. Toto neaktualizuje balíčky, které patří k danému názvu úložiště.
V následujícím příkladu aktualizace yum upgraduje všechny nainstalované balíčky kromě všech nainstalovaných balíčků, které patří do úložiště MongoDB.
yum --disablerepo=mongodb-org-3.0 update
Můžete také zadat volbu –disablerepo na konci po aktualizaci yum. Následující vyloučí balíčky, které patří do úložiště Docker během aktualizace yum.
yum update --disablerepo=dockerrepo
Přesný název úložiště, který chcete vyloučit, můžete získat pohledem na 1. sloupec výstupu příkazu „yum repolist“.
3. Vyloučit úložiště z aktualizace Yum pomocí povoleného parametru (metoda 2)
Namísto vyloučení konkrétního úložiště z příkazového řádku aktualizace yum můžete trvale vyloučit balíček z aktualizace yum nastavením parametru enabled na 0 v konfiguračním souboru úložiště.
Konfigurační soubory úložiště jsou umístěny v adresáři /etc/yum.repos.d, jak je uvedeno níže.
# ls -l /etc/yum.repos.d/ -rw-r--r--. 1 root root 1926 Jan 30 2016 CentOS-Base.repo -rw-r--r-- 1 root root 166 Feb 18 2016 docker.repo -rw-r--r-- 1 root root 142 Feb 5 2016 mongodb-org-3.0.repo .. ..
Chcete-li vyloučit úložiště mongodb, otevřete soubor úložiště mongodb a nastavte změnit hodnotu enabled na 0, jak je uvedeno níže.
# vi /etc/yum.repos.d/mongodb-org-3.0.repo [mongodb-org-3.0] name=MongoDB Repository baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ gpgcheck=0 enabled=0
Nyní, když uděláte yum repolist, ve výstupu neuvidíte úložiště MongoDB.
# yum repolist repo id repo name status base CentOS-6 - Base 6,575 extras CentOS-6 - Extras 62 updates CentOS-6 - Updates 1,622 dockerrepo Docker Repository 2 repolist: 8,261
To také znamená, že i když máte na svém systému nainstalované balíčky související s mongodb, když provedete následující „yum update“, balíčky mongodb již nebudou upgradovány.
yum update
4. Vyloučit více úložišť z příkazového řádku aktualizace Yum
Během aktualizace yum můžete také vyloučit více úložišť zadáním úložišť oddělených čárkou, jak je uvedeno níže.
Následující příklad vyloučí úložiště MongoDB, Docker a EPEL během aktualizace yum.
yum update --disablerepo=mongodb-org-3.0,dockerrepo,epel
5. Povolte úložiště pro aktualizaci Yum
Pokud jste deaktivovali úložiště nastavením „enabled=0“ v konfiguračním souboru úložiště, stále to můžete zahrnout během aktualizace „yum“ pomocí možnosti –enablerepo, jak je uvedeno níže.
Následující příklad bude zahrnovat balíčky z úložiště MongoDB během „yum update“, i když je toto úložiště zakázáno v souboru úložiště v adresáři /etc/yum.repos.d/.
yum update --enablerepo=mongodb-org-3.0
6. Kombinujte EnableRepo a DisableRepo v Yum Update
Kreativitu můžete získat také kombinací možnosti enablerepo a disablerepo.
Například následující příkaz yum update upgraduje pouze balíčky z úložiště MongoDB.
yum update --disablerepo=* --enablerepo=mongodb-org-3.0
Ve výše uvedeném:
- –disablerepo=* To znamená, že všechna úložiště by měla být nejprve deaktivována a neměla by být zvažována aktualizace yum
- –enablerepo=mongo To znamená, že během aktualizace yum by se mělo brát v úvahu pouze úložiště MongoDB (v kombinaci s výše uvedenou možností deaktivace)