Friday, July 22, 2016

CentOS - à la ligne de commande - 07 : YUM

YUM... De quoi s'agit-il ?

C'est un outil qui nous permet d'installer, de mettre à jour, et de supprimer des logiciels.

Ces logiciels existent sous forme de "paquets" et, par défaut, yum accède à des dépôts de paquets en ligne, hébergés par diverses organisations (des universités de recherche comme Columbia ou Princeton, par exemple).

Nous pouvons donc décrire yum comme un "gestionnaire de paquets".

Remarque : en français, pour traduire "packet", on se sert soit du mot "paquet" soit du mot "paquetage". Dans ce texte, je vais choisir le premier.

Il est possible de télécharger des paquets et de créer un dépôt local afin d'éviter que chaque serveur doive charger les mêmes paquets via une connexion Internet avec (sans doute) moins de bande passante que le réseau local.

Pour la petite histoire, yum signifie "Yellow Dog Updater, Modified". A l'origine, c'est l'équipe responsable de la distribution Yellow Dog Linux qui l'a conçu. Ensuite, il a été modifié pour fonctionner avec d'autres distributions, CentOS/Red Hat en particulier.

Je vais présenter quelques commandes que j'ai essayées pour réaliser différentes tâches.

***


Afficher une liste de paquets

yum list

Cette commande affiche une liste de paquets. Le résultat est surabondant. Je ne m'y retrouve pas.

De plus, ce n'est pas clair. De quels paquets s'agit-il ?

Les commandes suivantes s'expliquent mieux...

yum list available

Ce sont les paquets qui sont disponibles (mais pas installés)


yum list installed

Cette commande affiche les paquets installés.


yum list all

Cette commande affiche à la fois les paquets disponibles et les paquets installés.


Toutefois, ce qui s'affiche à l'écran est interminable. Nous avons plusieurs options pour gérer la masse des paquets énumérés.

Nous pouvons afficher la première page des résultats et puis faire défiler le reste, ligne par ligne, avec cette commande (et en appuyant sur la touche Retour - ou Entrée) :

yum list | more


Nous pouvons rediriger les résultats vers un fichier avec cette commande (et puis ouvrir avec cat ou un éditeur de texte comme vi) :

yum list > liste
cat liste


Si nous voulions chercher une paquet spécifique, pour vérifier qu'il est installé (ou disponible), nous pourrions faire appel à grep, comme dans les exemples suivants :

yum list installed | grep net-tools



yum list available | grep nmap




Nous avons une autre option qui a l'avantage de fournir une petite description du paquet :

yum search nmap




Si nous avons affaire à un paquet dont nous ne connaissons pas la nature, nous pouvons toujours en afficher une description (souvent en anglais) avec la commande suivante :

yum info nmap



Abordons la chose par encore un autre côté. Les listes de paquets sont organisées en groupes. Au lieu d'afficher chaque paquet, nous pouvons plutôt afficher les groupes :

yum grouplist



Parmi les groupes disponibles, remarquons les bureaux GNOME et KDE (des interfaces graphiques pour Linux que nous pouvons installer).


J'ai écrit plus haut que yum télécharge les paquets à partir de dépôts en ligne ("repository" en anglais). Nous pouvons voir les dépôts que yum utilise par défaut avec cette commande :

yum repolist




Voir l'histoire des opérations

Outre les logiciels installés par défaut avec le système d'opération, quels paquets ont été ajoutés ensuite avec yum ? Nous pouvons le savoir avec la commande "yum history".

La commande suivante affiche une liste des paquets (ou "modules") chargés :

yum history list


Mais cette liste n'offre pas beaucoup de détail sur les opérations effectuées. Nous voyons, sous l'en-tête "Action", qu'il s'agissait surtout d'installations. Mais qu'est-ce qui a été installé au juste ? Nous pouvons savoir cela avec cette commande (suivie par le numéro de l'opération) :

yum history info 2


Dans ce cas (ci-dessus), c'est perl (langage de script) qui a été installé.

Dans les cas suivants, ce sont ces paquets qui ont été installés :

  • net-tools (le paramètre facultatif -y évite les confirmations)
  • bind-utils (pour DNS)
  • telnet telnet-server








Installer une interface graphique

Je me suis dit que le plus intéressant serait d'utiliser yum pour installer une des interfaces graphiques pour Linux, GNOME, KDE ou Xfce étant parmi les mieux connues. J'ai fini par réussir mais il a fallu que je fasse plus d'un essai.

D'abord, j'ai choisi Xfce (pour des raisons qui dépassent le cadre de ce billet de blogue). Or, Xfce ne fait pas partie des paquets disponibles par défaut (Voir la capture d'écran plus haut, sous "yum grouplist").

Comment faire alors ?

Outre les paquets disponibles dans les dépôts auxquels nous pouvons accéder par défaut (après la simple installation de CentOS), d'autres dépôts sont mis à notre disposition par des tierces parties.

"Extra Packages for Enterprise Linux" (EPEL) est un de ces dépôts. Il s'agit d'un groupe associé à la distribution Fedora qui fournit des paquets additionnels pour Red Hat Enterprise Linux (RHEL), CentOS et Oracle Linux, entre autres.

En voici un survol (en anglais - le français ne figure pas parmi les autres langues en option) :

EPEL

J'ajoute EPEL à la liste de mes dépôts avec la commande suivante :

yum install epel-release

Remarque : il existe apparemment d'autres méthodes pour faire cela, utilisant les commandes "wget" et "rpm". Je n'ai pas essayé ces méthodes mais elles produisent sans doute les mêmes effets. 

Une sorte d'installation a lieu (de l'index sans doute) et maintenant, si j'exécute la commande "yum repolist", je vois EPEL parmi les dépôts :




Pour l'étape suivante, j'installe Xfce avec cette commande :

yum groupinstall Xfce

Remarque : j'ai vérifié la présence de Xfce parmi les dépôts avec "yum grouplist".


Puis, je configure le démarrage pour que l'interface graphique soit lancée :

systemctl set-default graphical.target



Remarque : il y a aussi d'autres méthodes d'ajuster l'interface qui se présente au démarrage. Je me suis contenté de celle-ci.

Mais au démarrage, Xfce ne se charge pas... Pourquoi ?

Je mets à jour tous les paquets installés...

yum update

Toujours rien.

En principe, yum devrait savoir s'il y a des logiciels qu'il faut installer d'abord, en tant que "pré-requis", les installer, et puis installer le paquet que nous souhaitons.

En pratique, il semblerait que ces calculs ne soient pas toujours parfaits.

Je découvre la cause du problème en tentant de lancer Xfce depuis la ligne de commande avec...

startx

Ce message d'erreur s'affiche :



Après avoir consulté diverses sources, j'ai conçu l'hypothèse que Xfce nécessite "X Windows" comme pré-requis. En effet, certaines sources présentaient Xfce comme un "gestionnaire" de X Windows. Si celui-ci était absent, il serait difficile de le "gérer".

J'installe donc X Windows :

yum groupinstall "X Windows System"

Cette fois, au redémarrage, je vois une interface graphique et après avoir ouvert une session, j'ai devant moi le bureau Xfce :



***

En conclusion, je veux ajouter encore quelques commandes que je n'ai pas utilisées mais qui me seront sans doute utiles à l'avenir.

Pour supprimer un paquet :

yum remove


Pour supprimer un group de paquets :

yum groupremove


Nous avons vu la commande pour mettre à jour les paquets installés (yum update) mais si nous voulons seulement voir s'il y a des mises à jour, nous nous servons de cette commande :

yum check-update


Pour recréer l'index des paquets disponibles aux dépôts :

yum clean all

No comments:

Post a Comment