Séance 3 : Ajout et Suppression de logiciels
Objectifs :
Identifier les outils de gestion des logiciels sous GNU/Linux
Distinguer les différents types d'archives
Appliquer les commandes de gestion des paquetages
Plan :
I.
Introduction
II. Les paquets
III. Les différents types d'archives
MP2L – Administration système et réseau
Page 1
I. Introduction :
Les logiciels sous GNU/Linux sont gérés généralement par l'assemblage de paquets pouvant
contenir le programme en lui-même, la documentation, et les bibliothèques nécessaires à son
fonctionnement et éventuellement d'autres greffons (plugins).
Sous les systèmes d'exploitation propriétaires, on est habitué à utiliser des binaires déjà compilés et
vendus sous cette forme. Par contre, sous GNU/Linux et avec les Logiciels Libres (licence GPL et
assimilées) toute la dynamique repose sur l'idée de laisser les sources non seulement accessibles,
mais modifiables et pouvant être copiées à volonté. Les organisations commerciales ou bénévoles
qui se chargent de produire par la suite des distributions Linux regroupant tous ces logiciels.
Une des conséquences immédiates fut qu'il fallait pouvoir gérer l'installation et la désinstallation des
logiciels contenus sur ces distributions, il fallait aussi prévoir les mises-à-jour et d'autres fonctions
comme le contrôle des dépendances ou la recompilation automatisée.
Plutôt que d’utiliser un système standard de gestion de paquets, chaque distribution a privilégié un
système de gestion de paquets particulier. On retrouve à présent quelques grandes familles de
gestions de paquets : les distributions basées sur les .rpm et celles basées sur les .deb. Ces deux
derniers gèrent les dépendances, c’est-à-dire, un logiciel X ne peut fonctionner sans un autre
logiciel Y. Par exemple un logiciel comme GIMP (le fameux logiciel graphique) ne pourra
fonctionner sans le serveur graphique qui permet l'affichage. Dans ce cas GIMP dépend du serveur
X, et par ailleurs aussi d'un grand nombre de bibliothèques graphiques.
MP2L – Administration système et réseau
Page 2
II. Les paquets :
Un paquet est l’association de plusieurs éléments nécessaires à la configuration, l'installation et
l'utilisation d'un logiciel.
Comme déjà mentionné plus haut, cette association contienne le programme en lui-même, les
bibliothèques nécessaires à son fonctionnement, de la documentations et éventuellement d'autres
greffons (plugins).
Les paquets sont à linux ce que sont les programmes exécutables (.exe) sont à Windows. Ils sont
extrêmement faciles à installer dans la plupart des cas.
Ils se présentent sous les extensions .rpm (pour "Red-hat Package Management") sous les
distributions de type RedHat ( Fedora, mandriva, Suse, …) et sous la forme .deb pour les
distributions de type Debian (debian, ubuntu, …) et sous la forme .tgz pour Slackware.
Ils s'installent par la commande
rpm -ivh programme.rpm
ou
dpkg -i programme.deb
ou encore
installpkg programme.tgz
1. Les paquets binaires
Les paquets binaires sont en fait des archives contenant les binaires, les documentations et tout ce
qui peut composer un logiciel. Ces archives contiennent aussi la liste des autres archives dont elles
dépendent. Ainsi tout les logiciels audio dépendent au moins des paquets contenant ALSA ou
JACK, respectivement les drivers et le serveur son.
2. Les paquets sources
On trouve également des paquets sources, c'est à dire contenant uniquement des fichiers sources. A
l'aide de certaines commandes il sera alors possible de générer automatiquement un paquet binaire.
MP2L – Administration système et réseau
Page 3
3. Les paquets "dev"
Ce sont des paquets complémentaires de développement. Ils contiennent des fichiers textes (fichiers
headers) et parfois des bibliothèques utilisés pour compiler d'autres paquets. On a besoin d'installer
les paquets "dev" uniquement si on souhaite compiler soi-même des binaires comme nous le
verrons plus bas.
4. Les dépôts logiciels
Les logiciels utilisés sous l’environnement GNU/Linux sont stockés généralement dans des dépôts.
Le plus souvent il s'agit des supports de type Cd ou DVD. Mais il est aussi possible d'ajouter des
dépôts FTP supplémentaires qui permettront les mises à jour (en ligne via internet). Il existe aussi
des dépôts offrant des logiciels non fournis par la distribution, permettant ainsi d'installer encore
plus de logiciels. Quel que soit le système de gestion utilisé, il existe un fichier de configuration
pour spécifier les dépôts logiciels dans lesquels on veut pouvoir puiser. Il est impératif de ne mettre
que des dépôts compatibles avec sa distribution. Les problèmes de dépendances viennent souvent
du mélange de dépôts de contributeurs non affiliés. Il est préférable de se limiter à ceux qui sont
officiels dans un premier temps et d'en ajouter d'autres que si l'on est sûr qu'ils sont compatibles
avec ceux du dépôt officiel et qu'ils n'entreront pas en conflit entre eux.
III. Les différents types d'archives :
1. Les packages RPM
Publicité
RPM (Red Hat Package Manager) est un outil de gestion de packages (ensemble de fichiers
constituant une application) pour Linux. Il permet d'installer des applications, ainsi que les
supprimer facilement.
Grâce à une commande simple, les fichiers s'installent directement dans les répertoires adéquats.
Le gestionnaire RPM permet aussi :
La Mise à jour des paquets: Lorsque vous récupérez une nouvelle version d'un package, il
n'est pas nécessaire de désinstaller la version précédente avant d'installer la nouvelle. En
effet RPM permet une mise à jour automatique des packages!
L’interrogation: RPM permet effectivement de connaître le contenu d'un package, mais il
permet aussi de savoir à quel package appartient un fichier.
La vérification du système: RPM permet de vérifier l'intégrité d'un package (c'est-à-dire de
MP2L – Administration système et réseau
Page 4
déterminer si tous les fichiers que contenait le package sont bien installés dans le système.
L’accès aux sources: RPM met à disposition des utilisateurs d'un package les sources, ainsi
que les instructions nécessaires à la compilation au cas où des utilisateurs voudraient
modifier les fichiers du package.
Voici les commandes principales de l’outil RPM :
Installation: pour installer le package "paq2566_i386.rpm" il suffira de taper :
rpm -ivh paq2566_i386.rpm
Si le package a déjà été installé précédemment le système vous affichera le message
package paq2566 is already installed
(L'option -replacepkgs permet de forcer l'installation)
Suppression: pour supprimer un package il suffit de taper
rpm -e paq2566
(Où paq2566 représente le nom du package à désinstaller)
Mise à jour: Pour mettre à jour un package (ce qui part du principe qu'une version
précédente du package a déjà été installée...) il faut taper la commande :
rpm -Uvh paq2566 _i386.rpm
Interrogation : Il existe plusieurs commandes visant à interroger un ou plusieurs packages
selon divers critères. Les voici :
Pour connaître des détails sur un package particulier :
rpm -q paq2566 _i386.rpm
Pour interroger tous les packages existants :
rpm -qa
Pour interroger les packages contenant un fichier particulier :
rpm -f NomDuFichier
Pour avoir des informations sur un package :
rpm -p NomDuPackage
Vérification: Cette option permet de comparer les différences entre le package installé et le
MP2L – Administration système et réseau
Page 5
package tel qu'il devrait être. Les commandes sont
Pour vérifier vis-à-vis d'un fichier particulier :
rpm -Vf NomDuFichier
Pour vérifier tous les packages :
rpm -Va
Pour vérifier un package particulier :
rpm -Vp NomDuPackage
Lorsqu'il n'y a pas d'erreur, le système n'affiche rien. Si par contre une erreur a été détectée
dans le package installé, le système renvoie une chaîne de huit caractères indiquant le type
d'erreur. Voici la signification des caractères
D: Périphérique
G: Groupe
L: Lien symbolique
M: Mode (Permissions)
T: date du fichier
S: Taille du fichier
U: Utilisateur
2. Les packages DEB
Chez la distribution Debian, l’outil de gestion de package permettant l’'automatisation de
l'installation, la configuration et la mise à jour des logiciels installés s’appelle dpkg. Les packages
Debian sont ainsi des fichiers portant l'extension .deb et pouvant être installés manuellement grâce à
la commande suivante :
dpkg -i nom_du_package.deb
De plus un système complémentaire a été mis au point afin de gérer les dépendances entre les
différents packages et de permettre de les mettre à jour par simple téléchargement: il s'agit du
système apt (Advanced Packaging Tool). Ce système fonctionne à partir d'une liste de sources
(emplacements
auxquels
des
paquetages
sont
disponibles)
présente
dans
le
fichier
Publicité
/etc/apt/sources.list.
Voici les commandes des fonctionnalités principales :
MP2L – Administration système et réseau
Page 6
Installation: pour installer le package "nom_du_package" il suffira de taper :
apt-get install nom_du_package
ou bien après avoir récupéré manuellement un package spécifique (avec l'extension .deb)
dpkg --install nom_du_package.deb
ou
dpkg -i nom_du_package
En cas de problème de dépendance il est possible (mais déconseillé, sauf en connaissance de
cause) de forcer l'installation avec la commande suivante :
apt-get install -f nom_du_package
Simulation d'installation: il peut être utile de simuler l'installation du package avant de
procéder à son installation afin de connaître exactement les paquetages dépendants qui vont
être installés et estimer les problèmes éventuels :
apt-get install -s nom_du_package
Suppression: pour supprimer un package il suffit de taper
apt-get remove nom_du_package
Cette commande supprime le paquet mais conserve les fichiers de configuration. Pour
supprimer également les fichiers de configuration il suffit d'utiliser la commande suivante :
apt-get remove --purge nom_du_package
Reconfiguration: pour reconfigurer un package il suffit de taper :
dpkg --reconfigure nom_du_package
Mise à jour de la liste: Pour mettre à jour la liste des packages il faut taper la commande :
apt-get update
Mise à jour des packages: La mise à jour des packages eux-mêmes se fait grâce à la
commande suivante :
apt-get upgrade
Il est conseillé de lancer cette commande avec le commutateur -u afin de connaître la liste
MP2L – Administration système et réseau
Page 7
exacte des paquetages qui vont être mis à jour :
apt-get -u upgrade
La commande suivant permet également de mettre à jour les paquets en préservant mieux les
dépendances afin de conserver un système plus cohérent :
apt-get dist-upgrade
Nettoyage: à chaque installation d'un logiciel, le système APT charge le paquetage concerné
et le stocke dans un référentiel local. Au bout d'un certain temps la liste des paquetages
conservés peut devenir importante et gourmande en espace disque, c'est la raison pour
laquelle il peut être utile de faire le ménage parmi ces fichiers. La commande clean permet
de supprimer tous les paquetages n'étant pas verrouillé, ce qui signifie que le paquetage
devra être à nouveau téléchargé s'il doit être reconfiguré :
apt-get clean
La commande autoclean permet de supprimer tous les paquetages n'étant plus disponibles en
téléchargement (et donc a priori obsolètes :
apt-get autoclean
Interrogation : Il existe plusieurs commandes visant à interroger un ou plusieurs packages
selon divers critères. Les voici :
Pour connaître la liste des packages contenant un mot clé particulier :
apt-cache search mot_cle
Pour obtenir plus d'information sur un paquetage donné :
apt-cache show nom_du_package
Pour afficher les dépendances d'un paquetage :
apt-cache depends nom_du_package
Pour connaître le paquetage auquel un fichier appartient :
apt-file search nom_du_fichier
Pour connaître la lite des fichiers d'un paquetage :
apt-file list nom_du_package
MP2L – Administration système et réseau
Page 8
Il existe un logiciel appelé deborphan qui permet d'indiquer le nom de toutes les librairies qui ne
sont plus utilisées sur un système debian. Ces librairies sont appelées orphelines car plus aucun
paquet ne dépend d'elles. Cet outil est notamment très pratique pour nettoyer les paquets inutiles.
Enfin,
il est à noter l'existe d'interfaces graphiques permettant de simplifier la gestion des
paquetages :
Aptitude
Synaptic
Gnome-apt
Wajig
Décompression des archives :
Les programmes sont la plupart du temps fournis compressés, c'est-à-dire sous un format plus
compact permettant de réduire la taille du programme, notamment pour
faciliter
son
téléchargement, c'est le programme GZIP qui permet ce compactage. Plusieurs fichiers peuvent
aussi être simplement regroupés en une seule archive pour faciliter leur transport, c'est le rôle du
Publicité
programme TAR. Enfin, les fichiers peuvent être compressés et regroupé en une archive portant
l'extension .tar.gz.
Les données compressées existent sous plusieurs formats :
Tar: les données sous ce format portent l'extension .tar
pour décompresser ce type de données il faut taper en ligne de commande :
tar xvf nom_du_fichier.tar
Gzip: les fichiers compressées en Gzip possèdent l'extension .gz
pour décompresser ces fichiers il faut taper en ligne de commande :
gunzip nom_du_fichier.gz
Bzip2: les fichiers compressées en Bzip2 possèdent l'extension .bz2
pour décompresser ces fichiers il faut taper en ligne de commande :
bzip2 -d nom_du_fichier.bz2
Tar/GZip (on parle généralement de Tarball): les données compressées en TAR et en GZIP
portent l'extension .tar.gz
Elles peuvent être décompressées successivement par les deux moyens énoncés ci-dessus ou
à l'aide de la commande :
MP2L – Administration système et réseau
Page 9
tar zxvf nom_du_fichier.tar.gz
Tar/BZip2: les données compressées en Tar et en Bz2 portent l'extension .tar.bz2
Elles peuvent être décompressées successivement par les deux moyens énoncés ci-dessus ou
à l'aide de la commande :
tar jxvf nom_du_fichier.tar.bz2
Compress: les fichiers archivés par le programme Compress portent l'extension .Z, ils
peuvent être décompressés par le programme Uncompress.
Compiler le programme
Les programmes sont généralement écrits en C ou en C++ et la succession des instructions
constituent le fichier source. Celui-ci est inutilisable tel quel, et demande à être traduit en langage
machine à l'aide d'un ensemble d'outils de compilation.
On trouve les fichiers sources quand on va sur le site d'un projet informatique (de l'application en
question). Une fois celle-ci décompressé dans un répertoire de travail (généralement /usr/src), il
faut s'assurer de certains pré-requis avant de démarrer la compilation.
Les outils et méthodes de compilation
Il existe plusieurs méthodes pour générer un binaire, elles se déroulent selon les mêmes étapes :
Récupération de l'archive source
Configuration: Le système est scanné pour vérifier si un environnement de compilation est
présent et fonctionnel. Ensuite, les bibliothèques et leurs fichiers de développement (include
et header) sont localisés et testés pour vérifier si leur version est à jour.
Compilation: l'étape de compilation à proprement parlé.
Installation: Les fichiers obtenus sont copiés dans l'aborescence du système de fichiers et le
programme est prêt à être utilisé. En option il est parfois possible de générer un paquet
logiciel.
Bien que la compilation se fasse pratiquement toujours de la même façon pour la majorité des
applications, il est vivement conseillé de lire le fichier INSTALL ou README pour connaître
exactement les commandes nécessaires à la compilation du programme.
Dans un premier temps il faut exécuter la commande :
./configure
MP2L – Administration système et réseau
Page 10
Cette commande est un script permettant d'adapter le programme à la machine courante. Les
options de configure sont :
Pour obtenir de l'aide :
./configure --help
Pour installer l'application dans un répertoire spécifique :
./configure --prefix="repertoire"
Dans un second temps il faut compiler le programme, grâce à la directive
make
Cette commande peut prendre plusieurs minutes/heures selon votre configuration et le logiciel à
compiler. En cas de probleme, la compilation s'arretera en vous renvoyant un message d'erreur. Si
tout se passe normalement de nombreuses lignes vont être affichées, puis le programme reviendra à
la ligne de commande.
Après avoir compilé l'application, il est possible de l'installer
L'installation de l'application doit s'effectuer en tant que super-utilisateur (root)
Pour installer l'application, la syntaxe suivante est généralement utilisée :
make install
En cas d'échec lors de la compilation, il faut nettoyer les fichiers makefile ayant été créés
automatiquement lors de la compilation avant de recommencer une nouvelle compilation. Cela se
fait grâce à la commande :
make clean
Une fois toutes ces étapes franchies, votre programme devrait être exécutable et se trouver soit dans
le répertoire spécifié lors de l'installation, ou bien généralement dans
/usr/local/nom_du_programme.
MP2L – Administration système et réseau
Page 11