CentOS – pluginy pro YUM

tuxcentosplugins

 

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

CentOS – pluginy pro YUM