Résoudre l'erreur 'sudo: yum: command not found' sous Linux

LinuxBeginner
Pratiquer maintenant

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.

YUM Command Not Found

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 :

  1. 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
  2. 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.

CentOS Container

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.

YUM Error

Compréhension des causes de l'erreur

L'erreur "sudo: yum: command not found" peut survenir pour plusieurs raisons :

  1. Le paquet YUM n'est pas installé
  2. L'exécutable YUM a été déplacé, renommé ou supprimé
  3. La variable d'environnement PATH ne contient pas le répertoire contenant l'exécutable YUM
  4. 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.

YUM Working

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 :

  1. Fichier de configuration principal : /etc/yum.conf
  2. 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 descriptif
  • baseurl : L'URL où se trouvent les paquets
  • enabled : 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é.

YUM Error

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 rapide
  • yum-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 :

  1. Configuré un environnement CentOS à l'aide de Docker pour des expériences en toute sécurité
  2. Simulé et diagnostiqué l'erreur "yum: command not found"
  3. Mis en œuvre diverses solutions pour restaurer la fonctionnalité de YUM
  4. Exploré les problèmes courants de configuration de YUM et leurs résolutions
  5. 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.conf et 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.