Com instal·lar i utilitzar yum-utils per mantenir Yum i augmentar el seu rendiment


Independentment de que Fedora comenci a adoptar definitivament el gestor de paquets yum en altres distribucions derivades (com Red Hat Enterprise Linux (RHEL) i CentOS) fins que hagi demostrat ser tan fiable com yum i més sòlid (segons la wiki del projecte Fedora, com del 15 de novembre de 2015, dnf encara es troba en estat provable). Per tant, les vostres habilitats de gestió de yum us serviran durant molt de temps.

Per això, en aquesta guia us presentarem yum-utils, una col·lecció d'utilitats que s'integren amb yum per ampliar les seves característiques natives de diverses maneres, fent-lo més potent i fàcil d'utilitzar.

Instal·lant yum-utils a RHEL/CentOS

Yum-utils s'inclou al repositori base (que està habilitat per defecte), de manera que instal·lar-lo en qualsevol distribució basada en Fedora és tan fàcil com fer-ho:

# yum update && yum install yum-utils

Totes les utilitats proporcionades per yum-utils s'instal·len automàticament amb el paquet principal, que descriurem a la secció següent.

Exploreu les utilitats proporcionades pel paquet yum-utils

Les eines proporcionades per yum-utils es mostren a la seva pàgina de manual:

# man yum-utils

Aquí teniu 10 d'aquestes utilitats yum que pensàvem que us interessaria:

debuginfo-install instal·la els paquets debuginfo (i les seves dependències) necessaris per depurar en cas d'error o durant el desenvolupament d'aplicacions que utilitzen un determinat paquet.

Per depurar un paquet (o qualsevol altre executable), també haurem d'instal·lar gdb (el depurador GNU) i utilitzar-lo per iniciar un programa en mode depuració.

Per exemple:

# gdb $(which postfix)

L'ordre anterior iniciarà un intèrpret d'ordres gdb on podem escriure les accions que s'executaran. Per exemple, run (com es mostra a la imatge següent) iniciarà el programa, mentre que bt (no es mostra) mostrarà el rastre de la pila (també conegut com a traça enrere) del programa, que proporcionarà una llista de trucades de funcions que van conduir a un determinat moment de l'execució del programa (utilitzant aquesta informació, tant els desenvolupadors com els administradors del sistema poden esbrinar què ha fallat en cas d'error).

Altres accions disponibles i els seus resultats esperats es mostren a man gdb.

L'ordre següent mostra de quin repositori s'han instal·lat els paquets :

# find-repos-of-install httpd postfix dovecot

Si s'executa sense arguments, find-repos-of-install retornarà la llista completa dels paquets instal·lats actualment.

package-cleanup gestiona la neteja de paquets, els duplicats, els paquets orfes (programes instal·lats des d'una font diferent dels dipòsits configurats actualment) i altres incoherències de dependència, inclosa l'eliminació de nuclis antics tal com es mostra a l'exemple següent:

# package-cleanup --orphans
# package-cleanup --oldkernels

No us haureu de preocupar perquè l'última ordre danyi el vostre nucli. Només afectarà els paquets del nucli antics (versions anteriors a la que s'executen actualment) que ja no són necessaris.

repo-graph retorna una llista completa de dependències de paquets en format de punt per a tots els paquets que estan disponibles als dipòsits configurats. Alternativament, repo-graph pot retornar la mateixa informació per repositori si s'utilitza amb l'opció --repoid=.

Per exemple, vegem les dependències de cada paquet al repositori d'actualitzacions:

# repo-graph --repoid=updates | less

A l'ordre anterior, estem enviant la sortida del repo-graph a menys per a una visualització més fàcil, però, alternativament, podeu redirigir-lo a un fitxer local per a una inspecció posterior:

# repo-graph --repoid=updates > updates-dependencies.txt

En qualsevol cas, podem veure que el paquet iputils depèn de systemd i openssl-libs.

repoclosure llegeix les metadades dels repositoris configurats, comprova les dependències dels paquets inclosos en ells i mostra una llista de dependències no resoltes per a cada paquet:

# repoclosure

repomanage consulta un directori amb paquets rpm i retorna una llista dels paquets més nous o més antics d'un directori. Aquesta eina pot ser útil si teniu un directori on emmagatzemeu diversos paquets .rpm de diferents programes.

Quan s'executa sense arguments, repomanage retorna els paquets més nous. Si s'executa amb la marca --old, retornarà els paquets més antics:

# ls -l
# cd rpms
# ls -l rpms
# repomanage rpms

Tingueu en compte que canviar el nom dels paquets rpm NO afectarà el funcionament del repomanage.

repoquery consulta els repositoris yum i obté informació addicional sobre els paquets, tant si estan instal·lats com si no (dependències, fitxers inclosos al paquet i més).

Per exemple, htop (Linux Process Monitoring) no està instal·lat actualment en aquest sistema, com podeu veure a continuació:

# which htop
# rpm -qa | grep htop

Ara suposem que volem enumerar les dependències d'htop, juntament amb els fitxers que s'inclouen en una instal·lació predeterminada. Per fer-ho, executeu les dues ordres següents, respectivament:

# repoquery --requires htop
# repoquery --list htop

yum-debug-dump us permet bolcar una llista completa de tots els paquets que heu instal·lat, tots els paquets disponibles en qualsevol repositori, la configuració important i la informació del sistema en un fitxer comprimit.

Això pot ser útil si voleu depurar un problema que s'ha produït. Per a la nostra comoditat, yum-debug-dump anomena el fitxer com a yum_debug_dump--

# yum-debug-dump

Com amb qualsevol fitxer de text comprimit, podem veure'n el contingut mitjançant l'ordre zless:

# zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

Si necessiteu restaurar la informació de configuració proporcionada per yum-debug-dump, podeu utilitzar yum-debug-restore per fer-ho:

# yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

yumdownloader descarrega els fitxers RPM font dels dipòsits, incloses les seves dependències. Útil per crear un repositori de xarxa per accedir-hi des d'altres màquines amb accés a Internet restringit.

Yumdownloader us permet no només descarregar els RPM binaris, sinó també els d'origen (si s'utilitza amb l'opció --source).

Per exemple, creem un directori anomenat htop-files on emmagatzemarem els RPM necessaris per instal·lar el programa mitjançant rpm. Per fer-ho, hem d'utilitzar l'interruptor --resolve juntament amb yumdownloader:

# mkdir htop-files
# cd htop-files
# yumdownloader --resolve htop
# rpm -Uvh 

reposync està estretament relacionat amb yumdownloader (de fet, admeten gairebé les mateixes opcions), però ofereix un avantatge considerable. En lloc de descarregar fitxers binaris o d'origen RPM, sincronitza un dipòsit remot amb un directori local.

Sincronitzem el conegut repositori EPEL amb un subdirectori anomenat epel-local dins del directori de treball actual:

# man reposync
# mkdir epel-local
# reposync --repoid=epel --download_path=epel-local

Tingueu en compte que aquest procés trigarà força temps ja que està baixant paquets 8867:

Un cop s'hagi completat la sincronització, comprovem la quantitat d'espai de disc utilitzada pel nostre mirall recentment creat del dipòsit EPEL mitjançant l'ordre du:

# du -sch epel-local/*

Ara depèn de vostè si voleu mantenir aquest mirall EPEL o utilitzar-lo per instal·lar paquets en lloc d'utilitzar-ne un de remot. En el primer cas, tingueu en compte que haureu de modificar /etc/yum.repos.d/epel.repo en conseqüència.

yum-complete-transaction és una part del programa yum-utils que captura transaccions yum no finalitzades o avortades en un sistema i intenta completar-les.

Per exemple, quan actualitzem els servidors Linux mitjançant el gestor de paquets yum, de vegades es llança un missatge d'advertència que diu el següent:

Queden transaccions pendents. Podeu considerar executar primer yum-complete-transaction per acabar-los.

Per solucionar aquests missatges d'advertència i resoldre aquest problema, l'ordre yum-complete-transaction entra a la imatge per completar les transaccions no finalitzades, troba aquelles transaccions yum incompletes o avortades als fitxers transaction-all* i transaction-done* que es poden trobar a/directori var/lib/yum.

Executeu l'ordre yum-complete-transaction per acabar les transaccions yum incompletes:

# yum-complete-transaction --cleanup-only

Ara les ordres yum s'executaran sense els avisos de transacció incomplets.

# yum update

Nota: aquest consell el suggereix un dels nostres lectors habituals, el Sr. Tomas, a la secció de comentaris aquí.

Resum

En aquest article hem cobert algunes de les utilitats més útils proporcionades mitjançant yum-utils. Per obtenir una llista completa, podeu consultar la pàgina de manual (man yum-utils).

A més, cadascuna d'aquestes eines té una pàgina de manual separada (vegeu man reposync, per exemple), que és la font principal de documentació a la qual hauríeu de consultar si voleu obtenir més informació sobre elles.

Si dediqueu un minut a comprovar la pàgina de manual de yum-utils, potser trobareu una altra eina que us agradaria que cobrissim amb més profunditat en un article separat. Si és així, o si teniu preguntes, comentaris o suggeriments sobre aquest article, no dubteu a fer-nos saber quin d'ells enviant-nos una nota mitjançant el formulari de comentaris a continuació.