Recherche de site Web

Comment installer et utiliser « yum-utils » pour maintenir Yum et améliorer ses performances


Même si Fedora commence à adopter dnf comme nouveau gestionnaire de paquets et bibliothèque de gestion de paquets par défaut, il ne remplacera pas définitivement le bon vieux gestionnaire de paquets yum dans d'autres distributions dérivées (telles que Red Hat Enterprise Linux (RHEL) et CentOS) jusqu'à ce qu'il se révèle aussi fiable que miam et plus solide (selon le wiki du projet Fedora, en date du 15 novembre 2015, dnf est toujours dans un état testable). Ainsi, vos compétences en gestion des miams vous serviront encore pendant un certain temps.

Pour cette raison, dans ce guide, nous vous présenterons yum-utils, un ensemble d'utilitaires qui s'intègrent à yum pour étendre ses fonctionnalités natives de plusieurs manières, le rendant ainsi plus puissant et plus facile à utiliser.

Installation de yum-utils dans RHEL/CentOS

Yum-utils est inclus dans le dépôt de base (qui est activé par défaut), donc l'installer dans n'importe quelle distribution basée sur Fedora est aussi simple que de le faire :

yum update && yum install yum-utils

Tous les utilitaires fournis par yum-utils sont installés automatiquement avec le package principal, que nous décrirons dans la section suivante.

Explorez les utilitaires fournis par le package yum-utils

Les outils fournis par yum-utils sont répertoriés dans sa page de manuel :

man yum-utils

Voici 10 de ces utilitaires miam qui pourraient vous intéresser :

1. Déboguer un package

debuginfo-install installe les packages debuginfo (et leurs dépendances) requis pour déboguer en cas de crash ou tout en développant des applications qui utilisent un certain package.

Afin de déboguer un package (ou tout autre exécutable), nous devrons également installer gdb (le débogueur GNU) et l'utiliser pour démarrer un programme en mode débogage.

Par exemple:

gdb $(which postfix)

La commande ci-dessus lancera un shell gdb où nous pourrons saisir les actions à exécuter. Par exemple, run (comme indiqué dans l'image ci-dessous) démarrera le programme, tandis que bt (non illustré) affichera la trace de la pile (également connue sous le nom de backtrace ) du programme, qui fournira une liste d'appels de fonctions ayant conduit à un certain point de l'exécution du programme (en utilisant ces informations, les développeurs et les administrateurs système peuvent comprendre ce qui n'a pas fonctionné en cas de crash).

Les autres actions disponibles et leurs résultats attendus sont répertoriés dans man gdb.

2. Rechercher le référentiel des packages installés

La commande suivante montre à partir de quel référentiel les packages actuellement installés ont été installés :

find-repos-of-install httpd postfix dovecot

S'il est exécuté sans arguments, find-repos-of-install renverra la liste complète des packages actuellement installés.

3. Supprimer les packages en double ou orphelins

package-cleanup gère le nettoyage des packages, les doublons, les packages orphelins (programmes installés à partir d'une source autre que les référentiels actuellement configurés) et d'autres incohérences de dépendances, y compris la suppression des anciens noyaux, comme indiqué dans l'exemple suivant :

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

Vous n'avez pas à craindre que la dernière commande endommage votre noyau. Cela affectera uniquement les anciens packages du noyau (versions antérieures à celle actuellement en cours d’exécution) qui ne sont plus nécessaires.

4. Découvrez la liste des dépendances des packages

repo-graph renvoie une liste complète des dépendances des packages au format dot pour tous les packages disponibles dans les référentiels configurés. Alternativement, repo-graph peut renvoyer les mêmes informations par référentiel s'il est utilisé avec l'option --repoid=.

Par exemple, regardons les dépendances de chaque package dans le référentiel des mises à jour :

repo-graph --repoid=updates | less

Dans la commande ci-dessus, nous envoyons la sortie de repo-graph vers less pour une visualisation plus facile, mais vous pouvez également la rediriger vers un fichier local pour une inspection ultérieure :

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

Dans les deux cas, nous pouvons voir que le package iputils dépend de systemd et openssl-libs.

5. Vérifier la liste des dépendances non résolues

repoclosure lit les métadonnées des référentiels configurés, vérifie les dépendances des packages qui y sont inclus et affiche la liste des dépendances non résolues pour chaque package :

repoclosure

6. Comment vérifier les packages les plus récents ou les plus anciens dans un répertoire

repomanage interroge un répertoire contenant des packages RPM et renvoie une liste des packages les plus récents ou les plus anciens dans un répertoire. Cet outil peut s'avérer utile si vous disposez d'un répertoire dans lequel vous stockez plusieurs packages .rpm de différents programmes.

Lorsqu'il est exécuté sans arguments, repomanage renvoie les packages les plus récents. S'il est exécuté avec l'indicateur --old, il renverra les packages les plus anciens :

ls -l
cd rpms
ls -l rpms
repomanage rpms

Veuillez noter que changer le nom des packages RPM n'affectera PAS le fonctionnement du repomanage.

7. Interrogez les référentiels Yum pour obtenir des informations sur le package

repoquery interroge les référentiels yum et obtient des informations supplémentaires sur les packages, qu'ils soient installés ou non (dépendances, fichiers inclus dans le package, etc.).

Par exemple, htop (Linux Process Monitoring ) n'est actuellement pas installé sur ce système, comme vous pouvez le voir ci-dessous :

which htop
rpm -qa | grep htop

Supposons maintenant que nous souhaitions lister les dépendances de htop, ainsi que les fichiers inclus dans une installation par défaut. Pour ce faire, exécutez respectivement les deux commandes suivantes :

repoquery --requires htop
repoquery --list htop

8. Videz tous les packages RPM installés dans un fichier Zip

yum-debug-dump vous permet de vider une liste complète de tous les packages que vous avez installés, de tous les packages disponibles dans n'importe quel référentiel, de la configuration importante et des informations système dans un fichier zippé.

Cela peut s'avérer utile si vous souhaitez déboguer un problème survenu. Pour notre commodité, yum-debug-dump nomme le fichier yum_debug_dump--, ce qui nous permet de suivre les modifications au fil du temps. .

yum-debug-dump

Comme pour tout fichier texte compressé, nous pouvons visualiser son contenu à l'aide de la commande zless :

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

Si vous devez restaurer les informations de configuration fournies par yum-debug-dump, vous pouvez utiliser yum-debug-restore pour le faire :

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

9. Téléchargement des RPM sources à partir des référentiels Yum

yumdownloader télécharge les fichiers RPM sources à partir des référentiels, y compris leurs dépendances. Utile pour créer un référentiel réseau accessible à partir d'autres machines avec un accès Internet restreint.

Yumdownloader vous permet de télécharger non seulement les RPM binaires mais aussi les sources (si utilisé avec l'option --source).

Par exemple, créons un répertoire nommé htop-files dans lequel nous stockerons le(s) RPM nécessaire(s) pour installer le programme à l'aide de rpm. Pour ce faire, nous devons utiliser le commutateur --resolve avec yumdownloader :

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

10. Synchroniser un référentiel Yum distant avec un répertoire local

reposync est étroitement lié à yumdownloader (en fait, ils prennent en charge presque les mêmes options) mais offre un avantage considérable. Au lieu de télécharger des fichiers RPM binaires ou sources, il synchronise un référentiel distant avec un répertoire local.

Synchronisons le référentiel EPEL bien connu avec un sous-répertoire appelé epel-local dans le répertoire de travail actuel :

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

Notez que ce processus prendra un certain temps car il s'agit du téléchargement des packages 8867 :

Une fois la synchronisation terminée, vérifions la quantité d'espace disque utilisée par notre miroir nouvellement créé du référentiel EPEL à l'aide de la commande :

du -sch epel-local/*

C'est maintenant à vous de décider si vous souhaitez conserver ce miroir EPEL ou l'utiliser pour installer des packages au lieu d'en utiliser un miroir distant. Dans le premier cas, gardez à l'esprit que vous devrez modifier /etc/yum.repos.d/epel.repo en conséquence.

11. Corriger les transactions Yum inachevées ou abandonnées

yum-complete-transaction fait partie du programme yum-utils qui détecte les transactions yum inachevées ou abandonnées sur un système et essaie de les terminer.

Par exemple, lorsque nous mettons à jour les serveurs Linux via le gestionnaire de packages yum, il génère parfois un message d'avertissement qui se lit comme suit :

Il reste des transactions inachevées. Vous pourriez envisager d’exécuter d’abord yum-complete-transaction pour les terminer.

Pour corriger ces messages d'avertissement et résoudre ce problème, la commande yum-complete-transaction apparaît pour terminer les transactions inachevées, elle trouve ces transactions yum incomplètes ou abandonnées dans transaction-all* et transaction-done* qui se trouvent dans le répertoire /var/lib/yum.

Exécutez la commande yum-complete-transaction pour terminer les transactions yum incomplètes :


yum-complete-transaction --cleanup-only

Désormais, les commandes yum s'exécuteront sans les avertissements de transaction incomplète.


yum update

Remarque : Cette astuce est suggérée par l'un de nos lecteurs réguliers M. Tomas dans la section commentaires ici.

Résumé

Dans cet article, nous avons couvert certains des utilitaires les plus utiles fournis via yum-utils. Pour une liste complète, vous pouvez vous référer à la page de manuel (man yum-utils).

De plus, chacun de ces outils possède une page de manuel distincte (voir man reposync, par exemple), qui est la principale source de documentation à laquelle vous devez vous référer si vous souhaitez en savoir plus à leur sujet.

Si vous prenez une minute pour consulter la page de manuel de yum-utils, vous trouverez peut-être un autre outil que vous aimeriez que nous abordions plus en profondeur dans un article séparé. Si tel est le cas, ou si vous avez des questions, des commentaires ou des suggestions sur cet article, n'hésitez pas à nous faire savoir laquelle en nous envoyant une note en utilisant le formulaire de commentaires ci-dessous.