CentOS – pluginy pro YUM
YUM (Yellowdog Updater Modified) je program, který se v CentOSu využívá ke správě RPM balíčků, tedy k jejich instalaci, updatování, mazání,
či k výpisu informací o balíčcích. Tyto základní vlastnosti lze ještě dále rozšiřovat díky tomu, že má YUM vestavěnou podporu pluginů.
Plugin pro YUM není nic jiného než skript napsaný v Pythonu (tedy soubor s koncovkou .py),
který se umístí do adresáře daného direktivou pluginpath v konfiguračním souboru /etc/yum.conf.
Aby plugin fungoval, tak musí být splněny následující požadavky:
Plugin je nakopírován do adresáře daného direktivou pluginpath.
Globální direktiva plugins je zapnuta, tedy nastavena na hodnotu 1 (plugins=1).
Konfigurační soubor pluginu musí ležet v adresáři /etc/yum/pluginconf.d/jmeno_pluginu.conf a aby byl povolen, tak v něm musí být direktiva enabled=1.
fastestmirror
Tento plugin je určen pro repozitáře, které jsou umístěny na více mirrorech. Provede připojení ke všem mirrorům, které jsou v seznamu (mirror listu),
zaznamená si časy odezvy jednotlivých mirrorů a následně podle nich setřídí mirrory od nejrychlejšího po nejpomalejší.
Plugin fastestmirror je v samostatném balíčku a jeho instalaci můžeme provést následujícím příkazem:
yum install yum-plugin-fastestmirror
Konfigurační soubor pluginu se nachází v souboru /etc/yum/pluginconf.d/fastestmirror.conf. Seznam mirrorů a čas odezvy jednotlivých mirrorů
je defaultně zaznamenáván do souboru /var/cache/yum/timedhosts.txt.
protectbase
Již z názvu pluginu je patrné, že se stará o ochranu repozitářů. Plugin se vyplatí v případě, že používáme některé neoficiální (3rd party) repozitáře.
Pomocí tohoto pluginu můžeme zabránit nechtěnému přepsání (updatování) balíčků, které jsou v některých neoficiálních repozitářích
v novějších verzích než distribuční balíčky. Balíčky repozitářů, které mají nastaven parametr protect=1 nemohou být vyupdatovány
(přepsány) balíčky z repozitářů, které mají nastaven parametr protect=0. Parametr protect musíme nastavit na všech repozitářích
– repozitáře, které tento parametr nemají nastaven mají defaultně protect=1.
Plugin je v samostatném balíčku a nainstalujeme jej následujícím příkazem:
yum install yum-plugin-protectbase
Část souboru /etc/yum.repos.d/CentOS-Base.repo jako příklad:
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=1 #released updates [update] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=1 #packages used/produced in the build but not released [addons] name=CentOS-$releasever - Addons mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 protect=0 ...
yum-plugin-priorities
Jedná se o plugin s podobnou funkčností jako výše uvedený plugin protectbase.
Tentokrát můžeme u všech repozitářů nastavit parametr priority=N, kde N může nabývat hodnot od 1 (nejvyšší priorita) do 99 (nejnižší priorita).
Balíčky z repozitáře s nižší prioritou nikdy nevyupdatují balíčky repozitáře s vyšší prioritou.
Priorita má smysl i u nově instalovaných balíčků, takže pokud je při instalaci k dispozici stejný balíček ve více repozitářích,
tak se nainstaluje ten z repozitáře s vyšší prioritou.
Plugin se stejně jako protectbase vyplatí při používání neoficiálních (3rd party) repozitářů. Jeho instalaci provedeme následovně:
yum install yum-plugin-priorities
Část souboru /etc/yum.repos.d/CentOS-Base.repo jako příklad:
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 priority=1 #released updates [update] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 priority=1 #packages used/produced in the build but not released [addons] name=CentOS-$releasever - Addons mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 ...
installonlyn
Tento plugin ponechává pouze N nainstalovaných starších verzí (RPM balíčků) jádra.
Obvykle je zbytečné uchovávat více verzí jádra než dvě (což je také defaultně nastavená hodnota parametru tokeep).
Plugin je součástí balíčku yum-utils a jeho instalaci provedeme takto:
yum install yum-utils cp /usr/share/doc/yum-utils-0.5/plugins/installonlyn/installonlyn.conf /etc/yum/pluginconf.d/ cp /usr/share/doc/yum-utils-0.5/plugins/installonlyn/installonlyn.py /usr/lib/yum-plugins/
changelog
Tento plugin slouží k vypsání Changelogu před nebo po updatu daného balíčku.
Plugin je součástí balíčku yum-utils a jeho instalaci provedeme takto:
cp /usr/share/doc/yum-utils-0.5/plugins/changelog/changelog.conf /etc/yum/pluginconf.d/ cp /usr/share/doc/yum-utils-0.5/plugins/changelog/changelog.py /usr/lib/yum-plugins/
versionlock
Díky tomuto pluginu můžeme do souboru /etc/yum/pluginconf.d/versionlock.list
zapsat všechny balíčky, které nechceme updatovat. Seznam balíčků je ve formátu stejném jako je výstup příkazu: rpm -qa.
Plugin je součástí balíčku yum-utils a jeho instalaci provedeme takto:
cp /usr/share/doc/yum-utils-0.5/plugins/versionlock/versionlock.conf /etc/yum/pluginconf.d/ cp /usr/share/doc/yum-utils-0.5/plugins/versionlock/versionlock.py /usr/lib/yum-plugins/
/etc/yum/pluginconf.d/versionlock.list:
httpd-2.0.52-28.ent.centos4 vsftpd-2.0.1-5.EL4.5
Další pluginy
Toto byl výčet těch nejzajímavějších pluginů, některé další pluginy lze nalézt v adresáři /usr/share/doc/yum-utils-0.5/plugins/.
V nových verzích balíčku yum-utils (download) lze také nalézt některé další pluginy, případně se můžete podívat přímo na stránky
http://wiki.linux.duke.edu, kde je i podrobný návod na to, jak psát v Pythonu vlastní pluginy.
Zdroj: http://tachec.org/tipsandtricks/yum_plugins