Introduction
Lorsque vous travaillez avec des distributions Linux basées sur Red Hat telles que CentOS ou RHEL, l'erreur "sudo: yum: command not found" peut vous empêcher d'installer des paquets logiciels ou de mettre à jour votre système. Cette erreur se produit généralement lorsque le gestionnaire de paquets YUM est manquant, mal configuré ou corrompu.

Dans ce laboratoire pratique, vous apprendrez à diagnostiquer et à résoudre ce problème courant grâce à des exercices pratiques dans un environnement CentOS. Vous utiliserez Docker pour créer un conteneur CentOS où vous pourrez expérimenter en toute sécurité la gestion des paquets, résoudre les problèmes liés à YUM et appliquer les meilleures pratiques pour la maintenance du système.
Ce laboratoire nécessite une connexion Internet pour l'apprentissage, seuls les utilisateurs Pro peuvent démarrer la machine virtuelle. Passez à l'offre Pro.
Configuration d'un environnement CentOS avec Docker
Dans ce laboratoire, nous utiliserons Docker pour créer un environnement CentOS où nous pourrons travailler avec le gestionnaire de paquets YUM. Docker nous permet de configurer rapidement des conteneurs isolés pour les tests et la résolution de problèmes sans affecter notre système hôte.
Comprendre les gestionnaires de paquets sous Linux
Différentes distributions Linux utilisent différents systèmes de gestion de paquets :
Distributions basées sur Debian (Ubuntu, Debian, Linux Mint) :
- Utilisent le gestionnaire de paquets APT (Advanced Package Tool)
- Format de paquet :
.deb - Commandes :
apt,apt-get,dpkg
Distributions basées sur Red Hat (RHEL, CentOS, Fedora) :
- Utilisent YUM (Yellowdog Updater, Modified) ou DNF (Dandified YUM)
- Format de paquet :
.rpm - Commandes :
yum,dnf,rpm
Création d'un conteneur CentOS
Commençons par créer un conteneur CentOS en utilisant Docker. Ouvrez votre terminal et exécutez :
docker run -it --name centos-lab centos:7 /bin/bash
Cette commande :
- Crée un conteneur interactif nommé
centos-lab - Utilise l'image CentOS 7
- Vous donne un shell bash à l'intérieur du conteneur
Après avoir exécuté cette commande, l'invite de votre terminal changera, indiquant que vous travaillez maintenant à l'intérieur du conteneur CentOS. Vous pouvez le confirmer en vérifiant les informations système :
cat /etc/os-release
Vous devriez voir des informations indiquant que vous utilisez CentOS Linux.

Simulation et diagnostic de l'erreur YUM
Dans cette étape, nous allons simuler l'erreur "sudo: yum: command not found" et apprendre à la diagnostiquer. Bien que CentOS soit généralement livré avec YUM préinstallé, nous allons créer un scénario où YUM est soit manquant, soit corrompu.
Vérification de l'installation de YUM
Tout d'abord, vérifions si YUM est installé dans votre conteneur CentOS :
which yum
rpm -q yum
La commande which yum devrait afficher le chemin vers l'exécutable YUM (généralement /usr/bin/yum), et rpm -q yum devrait afficher la version du paquet YUM installé.
Création d'un scénario de test
Pour simuler une situation où YUM est manquant, renommons l'exécutable YUM :
mv /usr/bin/yum /usr/bin/yum.backup
Maintenant, essayons d'utiliser YUM :
yum update
Vous devriez voir un message d'erreur du type "yum: command not found". Cela simule ce qui se passe lorsque l'exécutable YUM est manquant sur le système.
Essayons également avec sudo :
sudo yum update
Vous verrez l'erreur "sudo: yum: command not found", qui est le centre de notre résolution de problèmes.

Compréhension des causes de l'erreur
L'erreur "sudo: yum: command not found" peut survenir pour plusieurs raisons :
- Le paquet YUM n'est pas installé
- L'exécutable YUM a été déplacé, renommé ou supprimé
- La variable d'environnement PATH ne contient pas le répertoire contenant l'exécutable YUM
- Droits d'exécution insuffisants pour YUM
Vérifions notre variable d'environnement PATH :
echo $PATH
Cela devrait afficher une liste de répertoires séparés par des points-virgules. Assurez-vous que /usr/bin (où YUM est généralement situé) est inclus dans cette liste.
Résolution du problème de YUM manquant
Maintenant que nous avons diagnostiqué le problème, résolvons l'erreur "yum: command not found". Il existe plusieurs façons de résoudre ce problème, en fonction de sa cause racine.
Restauration de l'exécutable YUM
Étant donné que nous avons renommé l'exécutable YUM à l'étape précédente, restituons-le à son emplacement d'origine :
mv /usr/bin/yum.backup /usr/bin/yum
Vérifions maintenant que YUM fonctionne à nouveau :
yum --version
Vous devriez voir les informations de version de YUM, indiquant que YUM est maintenant accessible.

Installation de YUM (si manquant)
Dans un scénario réel où YUM est complètement manquant, vous devriez l'installer en utilisant RPM (Red Hat Package Manager), qui est un outil de gestion de paquets de bas niveau. Voici comment vous pourriez le faire :
## Ceci est à titre de démonstration. N'exécutez pas cette commande car nous avons déjà restauré YUM
## rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
Correction des permissions de YUM
Si YUM existe mais a des permissions incorrectes, vous pouvez les corriger en utilisant la commande chmod :
## Vérifier les permissions actuelles
ls -l /usr/bin/yum
## Définir les permissions correctes si nécessaire
chmod 755 /usr/bin/yum
Les permissions correctes pour YUM devraient être 755 (lisibles et exécutables par tous, modifiables seulement par le propriétaire).
Mise à jour du PATH (si nécessaire)
Si le répertoire contenant YUM n'est pas dans votre PATH, vous pouvez l'ajouter temporairement avec :
export PATH=$PATH:/usr/bin
Pour une solution permanente, vous ajouteriez cette ligne au fichier de configuration de votre shell (comme .bashrc).
Résolution des problèmes de configuration de YUM
Même si YUM est correctement installé, vous pourriez rencontrer d'autres problèmes qui l'empêchent de fonctionner correctement. Explorons quelques problèmes courants de configuration de YUM et comment les résoudre.
Compréhension des fichiers de configuration de YUM
La configuration de YUM est principalement contrôlée par ces fichiers et répertoires :
- Fichier de configuration principal :
/etc/yum.conf - Répertoire des fichiers de dépôts :
/etc/yum.repos.d/
Examinons le fichier de configuration principal :
cat /etc/yum.conf
Ce fichier contient les paramètres globaux de YUM tels que le répertoire de cache, l'emplacement du fichier journal et les options par défaut.
Vérification des dépôts YUM
Les dépôts YUM sont définis dans des fichiers avec l'extension .repo dans le répertoire /etc/yum.repos.d/. Listons ces fichiers :
ls -l /etc/yum.repos.d/
Maintenant, examinons l'un des fichiers de dépôt :
cat /etc/yum.repos.d/CentOS-Base.repo
Chaque définition de dépôt comprend :
- Un identifiant de dépôt unique entre crochets (par exemple,
[base]) name: Un nom descriptifbaseurl: L'URL où se trouvent les paquetsenabled: Indique si le dépôt est actif (1) ou inactif (0)gpgcheck: Indique si les signatures des paquets doivent être vérifiées (1) ou non (0)
Simulation d'un problème de dépôt
Simulons un problème de dépôt en renommant le répertoire des dépôts :
mv /etc/yum.repos.d /etc/yum.repos.d.backup
mkdir /etc/yum.repos.d
Maintenant, essayons d'utiliser YUM :
yum update
Vous verrez probablement une erreur indiquant qu'aucun dépôt activé n'a été trouvé. C'est un problème courant qui peut empêcher YUM de fonctionner même s'il est correctement installé.

Restauration de la configuration des dépôts
Restaurons la configuration des dépôts :
rm -rf /etc/yum.repos.d
mv /etc/yum.repos.d.backup /etc/yum.repos.d
Vérifions maintenant que YUM fonctionne à nouveau :
yum repolist
Cela devrait lister les dépôts activés sur votre système.
Maintenance de YUM et meilleures pratiques
Maintenant que nous avons résolu divers problèmes liés à YUM, discutons des meilleures pratiques pour maintenir un système de gestion de paquets sain sur CentOS ou d'autres distributions basées sur Red Hat.
Mises à jour régulières du système
Maintenir votre système à jour est crucial pour la sécurité et la stabilité. Exécutez régulièrement ces commandes :
## Mettre à jour les métadonnées des paquets
yum check-update
## Installer toutes les mises à jour disponibles
yum update -y
Nettoyage du cache YUM
YUM maintient un cache des métadonnées des paquets et des paquets téléchargés. Nettoyer périodiquement ce cache peut aider à résoudre des problèmes et libérer de l'espace disque :
## Nettoyer les métadonnées
yum clean metadata
## Nettoyer les paquets
yum clean packages
## Tout nettoyer
yum clean all
## Reconstruire le cache
yum makecache
Gestion des plugins YUM
La fonctionnalité de YUM peut être étendue avec des plugins. Pour lister les plugins installés :
yum list installed "yum-plugin-*"
Les plugins utiles courants incluent :
yum-plugin-fastestmirror: Sélectionner automatiquement le miroir de dépôt le plus rapideyum-plugin-security: Filtrer les mises à jour en fonction de leur pertinence en matière de sécuritéyum-plugin-priorities: Définir des priorités pour différents dépôts
Résolution des problèmes YUM
Lorsque vous rencontrez des problèmes avec YUM, ces commandes peuvent vous aider à diagnostiquer les problèmes :
## Vérifier si les dépôts sont accessibles
yum repolist
## Afficher l'historique de YUM (transactions passées)
yum history
## Vérifier les problèmes de paquets
yum check
## Exécuter YUM avec une sortie de débogage
yum -v update
Sortie du conteneur
Lorsque vous avez terminé le laboratoire, quittez le conteneur CentOS en tapant :
exit
Cela vous ramènera sur votre système hôte Ubuntu.
Résumé
Félicitations pour avoir terminé ce laboratoire sur la résolution de l'erreur "sudo: yum: command not found" sous Linux. Dans cet exercice pratique, vous avez :
- Configuré un environnement CentOS à l'aide de Docker pour des expériences en toute sécurité
- Simulé et diagnostiqué l'erreur "yum: command not found"
- Mis en œuvre diverses solutions pour restaurer la fonctionnalité de YUM
- Exploré les problèmes courants de configuration de YUM et leurs résolutions
- Appris les meilleures pratiques pour la maintenance et la résolution de problèmes de YUM
Les principaux enseignements de ce laboratoire :
- L'erreur "yum: command not found" peut survenir en raison d'exécutables manquants, de permissions incorrectes ou de problèmes liés au PATH
- La configuration de YUM est contrôlée par
/etc/yum.confet les fichiers dans/etc/yum.repos.d/ - Les tâches de maintenance régulières telles que le nettoyage des caches et la mise à jour des paquets contribuent au maintien de la santé du système
- Docker fournit un excellent environnement pour apprendre et résoudre les problèmes des systèmes Linux en toute sécurité
Ces compétences vous aideront à maintenir et à résoudre les problèmes des systèmes Linux basés sur Red Hat, garantissant le bon fonctionnement de votre système de gestion de paquets pour l'installation de logiciels et les mises à jour du système.



