La gestion de paquets facile

par Sheng Bao, <shengbao /at/ ieee.org>, en juin 2006 (article #391). Traduit par Laurent Richard <laurent.richard /at/ lilit.be>.

Beaucoup de gens pensent que Linux est un système d'exploitation compliqué car son système de gestion de paquet-logiciels n'est pas aussi facile d'utilisation que celui de Windows. A mes débuts sous Linux, j'ai cherché un fichier du genre “ setup.exe ” comme sous Windows. De plus, quand j'utilisais les RPM, j'étais assez effrayé par “ l'enfer des dépendances ” qui me demandait d'installer d'autres paquets afin de satisfaire les dépendances. Maintenant, grâce à l'excellent travail de personnes passionnées par le libre, nous pouvons trouver une meilleure façon de gérer les paquets-logiciels que la méthode CEL (cliquer et lancer) de Windows. Cet article va vous initier aux outils YUM et APT-GET afin d'obtenir des logiciels et autres outils pour travailler avec ceux-ci. Je parlerai également des systèmes de gestion de paquets spécifiques aux distributions.

Les méthodes de distribution de logiciels sous Linux

Il y a en général deux types de programmes sous Linux : les exécutables binaires et les scripts. Les petits scripts n'ont pas besoin d'être installés pour fonctionner. Les scripts sont des textes plats (plain text en anglais), qui cherchent leur interpréteur correspondant dans l'environnement PATH. La distribution des petits scripts est très facile, il suffit de les copier. Dans cet article, la notion de logiciel fera référence aux scripts complexes ainsi qu'aux exécutables binaires.

Vu que la plupart des logiciels sous Linux sont des logiciels libres, ils sont distribués sous la forme de code source. Généralement, le code source est contenu dans le tar.gz ou un tar.bz2 avec un script configure. Le script de console configure rassemble les informations du système comme les bibliothèque et les fichiers d'en-tête nécessaires pour compiler le programme et générer un Makefile. Ensuite, le compilateur va compiler le code source sur base des règles définies dans le Makefile. La plupart du temps, il y a une règle intitulée install qui copie les fichiers générés vers la destination.

La méthode d'installation par le code source est la plus difficile pour un débutant. Quand j'étais débutant, j'ai toujours rencontré des problèmes comme l'absence de bibliothèques ou des chemins manquants. Généralement, un débutant ne connaît pas la signification exacte de l'erreur. Et bien sûr, il manque des connaissances suffisantes pour pouvoir la résoudre. Par exemple, la plus grande erreur que j'ai faite a été d'extraire le code source sur une partition FAT32 dans laquelle les liens symboliques ne sont pas supportés. En effet, il n'est pas facile de supprimer le logiciel si il n'y a pas de règle pour désinstaller dans le Makefile et si vous n'avez pas spécifié de répertoire de destination lors de la configuration de façon à séparer vos programmes du reste de votre système. A cause de toutes ces difficultés, certaines personnes ont créé des paquets contenant les binaires pour une installation directe.

Les exemples les plus connus de formats de paquets binaires sont le RPM et le DEB. Ils fournissent une méthode facile pour installer, mettre à jour et désinstaller des paquets. Mais des problèmes existent aussi. Prenons un RPM par exemple. Le problème des dépendances est un cauchemar. Parfois, je trouve cela trop difficile de satisfaire une vérification de dépendance car je suis dans une boucle où il y a trop de paquets que je dois installer séparément.

Nous voulons donc quelque chose qui permet de gérer tous les problèmes inhérents à la gestion de paquets, depuis l'acquisition jusqu'à l'installation en passant par la mise à jour et la suppression. Linux est un système d'exploitation qui est fortement orienté réseau. Vous devez juste connecter votre ordinateur sur Internet. Ensuite, vous pourrez demander à votre gestionnaire de paquets de gérer tout à votre place. YUM et APT-GET me font penser que la gestion de paquets est bien plus simple sous Linux que sous Windows. Cette article se concentrera sur l'utilisation de YUM sur Fedora Core plutôt que sur APT-GET car YUM sur Fedora Core est une nouveauté comparé à APT-GET qui est développé il y a déjà longtemps.

La suite de cet article est organisée comme suit. Je vais tout d'abord expliquer le terme de dépôts qui sera souvent mentionné. Ensuite, je débuterai une grande section à propos de l'utilisation de YUM sous Red Hat/Fedora Core. Je décrirai trois méthodes pour importer les dépôts : installation d'un paquet rpm complet, édition de /etc/yum.conf et importation de la clef GPG et création d'un nouveau fichier dans le répertoire /etc/yum.repos.d correspondant au dépôt et importation de sa clef GPG. Cette partie contiendra également des informations à propos d'autres dépôts ainsi que les plug-in de YUM. Un exemple d'utilisation de YUM se trouvera à la fin de cette partie. Après cela, je montrerai comment utiliser APT-GET sur Red Hat/Fedora Core. Il existe beaucoup d'outils graphiques pour YUM qui peuvent vous aider à gérer vos paquets plus facilement. Deux d'entre eux sont présentés dans YUM graphique. Après un bref regard sur APT-GET sous Debian et ses dérivés, il y aura une démonstration sur Synaptic. Les outils de gestion de paquets fournis par Fedora Core 5 seront abordés dans la dernière partie.

 
 

A propos des dépôts

Cette section vous initiera à plusieurs méthodes d'utilisation des outils de gestion afin d'obtenir les paquets depuis Internet et les gérer. L'endroit où vous pouvez obtenir des paquets s'appelle un dépôt. Votre distribution en fournit certainement. Certains volontaires aiment aussi "créer des paquets" pour votre distribution. Si vous désirez les utiliser, vous devrez ajouter les URL de ces personnes dans votre liste de dépôts. Votre distribution peut posséder également plusieurs miroirs de paquets. Si vous voulez améliorer la vitesse de téléchargement, vous devez ajouter un miroir proche de votre situation géographique dans votre liste de dépôts.

 
 

Utilisation de YUM sur Red Hat/Fedora Core

Je n'ai utilisé YUM que sur Fedora Core 2, 4 et 5. Les distributions fournissent elles-même le logiciel YUM.
En règle générale, il existe trois méthodes pour ajouter des dépôts (ou regroupements de paquets) :

  • installer un paquet rpm contenant tout;
  • éditer /etc/yum.conf et importer la clef GPG;
  • créer un nouveau fichier dans le répertoire
    /etc/yum.repos.d correspondant ou dépôt et importer sa
    clef GPG.

 
 

Installer un paquet rpm s'occupant de tout

Ici, je vais vous montrer comment ajouter deux célèbres dépôts de paquets (freshrpms et linva) via des rpm. Les commandes suivantes ne sont applicables que sur Fedora Core 5. Si vous utilisez une distribution différente, allez sur ayo.freshrpms.net et rpm.livna.org pour trouver les rpm correspondant à votre distribution. Ceux-ci sont situés aux mêmes adresses.
Saisissez

rpm -ivh http://ayo.freshrpms.net/fedora/linux/5/i386/RPMS.freshrpms/freshrpms-re...
rpm -ivh http://rpm.livna.org/fedora/5/i386/livna-release-5-4.noarch.rpm

La commande ci-dessus va ajouter freshrpms et livna dans votre liste de dépôts.

 
 

Éditer /etc/yum.conf et importer le clef GPG

D'autres méthodes sont disponibles afin d'ajouter des dépôts pour YUM. L'une d'elle est d'ajouter l'information concernant le dépôt dans /etc/yum.conf. http://svn.rpmforge.net/svn/trunk/rpms/yum/ à certains exemples. Vous devez juste ajouter l'information du dépôt contenue dans l'exemple à la suite de votre /etc/yum.conf.

 
 

Créer un nouveau fichier dans le répertoire

/etc/yum.repos.d correspondant au dépôt et importer sa
clef GPG

Une autre façon de faire est de créer les fichiers adéquats dans le répertoire /etc/yum.repos.d. Sur mon ordinateur, ce répertoire contient les fichiers suivants :

[root@orioleQ yum.repos.d]# ls
dries.repo fedora-legacy.repo livna.repo
fedora-core.repo fedora-updates.repo livna.repo~
fedora-development.repo fedora-updates-testing.repo livna-testing.repo
fedora-extras-development.repo freshrpms.repo
fedora-extras.repo livna-devel.repo

Prenons dries.repo comme exemple. Créons un fichier /etc/yum.repos.d/dries.repo
et saisissons les lignes suivantes dans ce fichier :

[dries]
name=Extra Fedora rpms dries - $releasever - $basearch
baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/fedora/linux/$releasever/$basearch/dries/RPMS/
enabled=0
gpgcheck=1

Notez que nous avons mis "enabled" à "0" (inactif) dans ce fichier afin que le dépôt dries ne soit pas en conflit avec nos répertoires lors des mises à jour automatiques. Ensuite, nous importons la clef GPG depuis le dépôt freshrpms.

rpm --import http://freshrpms.net/packages/RPM-GPG-KEY.txt

Et en exécutant

rpm --import http://apt.sw.be/dries/RPM-GPG-KEY.dries.txt

, nous importerons la clef GPG pour le dépôt dries.

 

 

Autres

Il existe pas mal de dépôts maintenus par des bénévoles partout dans le monde. Il suffit de les chercher et de les ajouter dans votre liste de dépôts. Voici une liste de quelques uns parmi lequels vous pourrez choisir une/des source(s) appropriée(s) pour votre système.
http://dl.atrpms.net/
http://www.jpackage.org/repos.php
http://newrpms.sunsite.dk/
Lisez les instructions sur leur page Internet pour trouver la méthode pour les ajouter. En général, vous trouverez un fichier sont le nom contient "RPM-GPG-KEY". Utilisez alors

rpm --import le.fichier.RPM-GPG-KEY

pour importer la clef GPG.

 

 

Des Plug-ins YUM utiles

Il existe beaucoup de plug-ins permettant d'améliorer les performances de YUM comme, par exemple, yum-utils et yum-fastestmirror.
Saisissez

yum -y install yum-fastestmirror

et

yum -y install yum-utils

pour les installer. Ils vous aideront à utiliser YUM, par exemple en recherchant le miroir le plus rapide.

 
 

Utiliser YUM pour installer des paquets

Utiliser YUM pour installer des logiciels est très simple. Il recherchera et installera toutes les dépendances nécessaires. Voici un exemple de ce qui apparaîtra sur votre console :

[root@orioleQ yum.repos.d]# yum -y install xine
Loading "installonlyn" plugin
Loading "kernel-module" plugin
Loading "fedorakmod" plugin
Setting up Install Process
Setting up repositories
dries [1/5]
updates [2/5]
core [3/5]
freshrpms [4/5]
extras [5/5]
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for xine to pack into transaction set.
xine-0.99.4-4.fc5.rf.i386 100% |=========================| 30 kB 00:01
---> Package xine.i386 0:0.99.4-4.fc5.rf set to be updated
--> Running transaction check
--> Processing Dependency: libaa.so.1 for package: xine
--> Processing Dependency: libxine.so.1 for package: xine
--> Processing Dependency: xine-lib >= 1.0.0 for package: xine
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for xine-lib to pack into transaction set.
xine-lib-1.1.1-2.fc5.rf.i 100% |=========================| 41 kB 00:03
---> Package xine-lib.i386 0:1.1.1-2.fc5.rf set to be updated
---> Downloading header for aalib to pack into transaction set.
ftp://fedora.bu.edu/fedora/extras/5/i386/aalib-1.4.0-0.rc5.7.i386.rpm: [Errno
4] IOError: [Errno ftp error] timed out
Trying other mirror.
aalib-1.4.0-0.rc5.7.i386. 100% |=========================| 5.9 kB 00:00
---> Package aalib.i386 0:1.4.0-0.rc5.7 set to be updated
--> Running transaction check
--> Processing Dependency: libdvdcss for package: xine-lib
--> Processing Dependency: libfame-0.9.so.1 for package: xine-lib
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libdvdcss to pack into transaction set.
libdvdcss-1.2.9-2.fc5.rf. 100% |=========================| 5.0 kB 00:00
---> Package libdvdcss.i386 0:1.2.9-2.fc5.rf set to be updated
---> Downloading header for libfame to pack into transaction set.
libfame-0.9.1-10.fc5.i386 100% |=========================| 5.2 kB 00:00
---> Package libfame.i386 0:0.9.1-10.fc5 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
xine i386 0.99.4-4.fc5.rf dries 2.3 M
Installing for dependencies:
aalib i386 1.4.0-0.rc5.7 extras 70 k
libdvdcss i386 1.2.9-2.fc5.rf dries 44 k
libfame i386 0.9.1-10.fc5 freshrpms 226 k
xine-lib i386 1.1.1-2.fc5.rf dries 4.2 M

Transaction Summary
=============================================================================
Install 5 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 6.8 M
Downloading Packages:
(1/5): xine-lib-1.1.1-2.f 100% |=========================| 4.2 MB 02:49
(2/5): aalib-1.4.0-0.rc5. 100% |=========================| 70 kB 00:01
(3/5): libdvdcss-1.2.9-2. 100% |=========================| 44 kB 00:01
(4/5): libfame-0.9.1-10.f 100% |=========================| 226 kB 00:28
(5/5): xine-0.99.4-4.fc5. 100% |=========================| 2.3 MB 01:43
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: aalib ######################### [1/5]
Installing: libfame ######################### [2/5]
Installing: libdvdcss ######################### [3/5]
Installing: xine-lib ######################### [4/5]
Installing: xine ######################### [5/5]

Installed: xine.i386 0:0.99.4-4.fc5.rf
Dependency Installed: aalib.i386 0:1.4.0-0.rc5.7 libdvdcss.i386
0:1.2.9-2.fc5.rf libfame.i386 0:0.9.1-10.fc5 xine-lib.i386 0:1.1.1-2.fc5.rf
Complete!

 
 

Utiliser APT-GET sur Red Hat/Fedora Core

Comme nous le savons tous, APT (advanced package tools) est un excellent logiciel de gestion de paquets qui fut d'abord utilisé sur Debian et les distribution Linux basées sur Debian comme Ubuntu.

Sur mon poste de travail, j'ai installé Ubuntu 5.10 et Fedora Core 4 car parfois, je ne peux installer des logiciels que via apt-get et parfois uniquement via rpm. En effet, pas mal de logiciels commerciaux sont distribués sous le format RPM comme NI LabVIEW qui ne supportent pas officiellement les autres. Donc, lorsque je travaille, j'utilise Fedora Core 4. Mais la convivialité d'apt-get m'a séduit à tel point que j'utilise fréquemment Ubuntu. J'ai rêvé longtemps d'utiliser APT-GET sur Fedora Core.

Il y a de nombreux endroits où vous pouvez installer apt-get sur votre distribution RH/FC. Vous pouvez installer le programme apt-get d'abord via des paquets RPM. Un des endroits disponibles est http://apt.freshrpms.net/. Allez sur le répertoire correspondant à votre distribution et architecture CPU. Téléchargez tous les fichiers ayant le préfixe "apt-" et installez les via la commande rpm . Dans mon cas, j'ai utilisé les commandes suivantes pour installer le programme apt-get.

rpm -ivh http://ftp.freshrpms.net/pub/fedora/linux/extras/4/i386/apt-0.5.15cnc7-6...
rpm -ivh http://ftp.freshrpms.net/pub/fedora/linux/extras/4/i386/apt-devel-0.5.15...

Ensuite, vous devrez configurer "apt". Avec l'aide d'un éditeur de texte, ouvrez le fichier /etc/apt/sources.list . La configuration de ce fichier n'est pas la même que celle que nous utilisons sous Debian. Il y a pas mal de sources apt pour Fedora Core sur Internet. Je vais vous montrez certains exemples.

Allez sur http://svn.rpmforge.net/svn/branches/rpms/matthias/apt/.
Ouvrez le fichier sources.list correspondant à votre architecture CPU. Copiez les lignes correspondant à votre distribution. Décommentez-les et collez-les dans votre fichier /etc/apt/sources.list. Par exemple, je vais ajouter cette ligne à mon /etc/apt/sources.list

rpm http://ayo.freshrpms.net fedora/linux/2/i386 core updates freshrpms

Ouvrez http://apt.kde-redhat.org/apt/sources.list.
Copiez les lignes et ajoutez-les à votre /etc/apt/sources.list.

Ensuite, lancez la commande "apt-get update" pour récupérer la liste.

Vous pouvez également chercher les sources apt-get correspondantes à votre système sur Internet et les ajouter à votre /etc/apt/sources.list comme je vous l'ai décrit.

 
 

YUM graphique

Ici, je veux vous présenter deux programmes permettant d'utiliser YUM de manière graphique : kyum et Yumex.
Pour les installer, exécutez :
yum -y install yumex
yum -y install kyum

Vu que leur utilisation est très simple (cliquer et appliquer), je ne montrerai que des captures d'écran. N'oubliez pas de vous connecter sur Internet lorsque vous utilisez de ces programmes.

Kyum:

YumEx:

 
 

Utiliser apt-get sur Debian et ses dérivés

Je n'ai pas envie de m'étendre sur le sujet vu qu'il n'est pas neuf. Pour certaines personnes, c'est la raison pour laquelle ils utilisent Debian. Vu que nous avons déjà présenté l'utilisation d'apt-get sur Fedora Core, il n'est pas nécessaire de faire plus amples commentaires sur le sujet.

Rappelez-vous de ne pas lancer plusieurs fois le programme apt en même temps ou vous observerez une erreur disant :

E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily
unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another
process using it?

Il y a beaucoup de sources apt-get dans le monde. Néanmoins, leur vitesse diffère. Certaines sont plus rapides et d'autres plus lentes. Vous devez juste les ajouter à votre /etc/apt/sources.list. La plupart des sources vous fourniront les informations à ajouter au fichier /etc/apt/sources.list.

 
 

Synaptic sur Debian/Ubuntu

APT-GET est un excellent outil pour obtenir des paquets qui était utilisé initialement sous Debian. Mais si vous désirez voir les paquets par catégories et vérifier leur état d'installation, Synaptic est un bon choix. Lorsque vous désirez installer un logiciel, faites un clic-droit sur la boîte carrée à côté du nom de logiciel et choisissez "Mark for installation (Sélectionner pour installation)". Sur les paquets installés, vous pouvez choisir "Mark for reinstall (Sélectionner pour réinstallation)", "Mark for removal (Sélectionner pour suppression)" et "Mark for complete removal (Sélectionner pour suppression complète)". Voici les copies d'écran.
Sélectionner pour installation :

Gérer les paquets installés :

 
 

Le gestionnaire de paquets de Fedora Core 5

Fedora Core 5 fournit un outil graphique facile à utiliser : Package Manager. Vous pouvez l'utiliser aussi facilement que kyum ou YumEx. Le seul désavantage est que vous ne pouvez gérer que les logiciels distribués avec Fedora Core 5. Vous pouvez les afficher et les sélectionner par catégories.




Chaque catégorie possède également ses paquets optionnels. Cliquez sur "Optional packages".




Vous pouvez chercher les paquets que vous souhaitez.

 

Discussions

J'ai créé une page Internet listant les logiciels EE et mathématiques que j'utilise dans mes recherches et mes études. N'hésitez pas à me contacter si vous avez une nouvelle idée concernant ce sujet.

 

Remerciements

Je souhaite remercier l'éditeur, Viktor Horvath, pour sa relecture et ses commentaires sur mon brouillon.
Je remercie également You Xu, qui sera doctorant en Sciences informatiques au WUSTL après les vacances estivales (2006). Il a relu mon brouillon et m'a fait beaucoup de commentaires.
Je veux aussi remercier Ying Huang, une jeune femme chinoise très douée, licenciée en génie logiciel de l'université
de Nanjing. Elle m'a encouragé et m'a redonné confiance lorsque je rencontrais des difficultés.

 

Adresses collectées

Ces liens et les autres liens mentionnés dans cet article fonctionnaient au moment de sa rédaction (Juin 2006). Il se peut qu'ils ne fonctionnent plus.

L'auteur:

Sheng Bao est étudiant en Chine option EE (Ingénierie en Electronique). Il adore Linux car il peut y trouver des séries d'outils qui l'aident dans ses recherches et ses études. Outre ses recherches dans de nombreux domaines interdisciplinaires, il est un défenseur enthousiaste de Linux dans le milieu académique.