Le système d'exploitation GNU-Linux/Installation de nouveaux logiciels
Au début de linux, installer un logiciel libre nécessitait de récupérer les sources et de les compiler. Cette étape de compilation pouvait être fastidieuse car il fallait disposer de toutes les librairies utilisées par le logiciel.
Redhat a énormément simplifié ce processus en inventant le format RPM (Redhat Package Manager), format qui propose les logiciels open-source pré-compilés.
Debian s'en est inspiré pour créer le format DEB.
- REDHAT = logiciel.x.y.rpm
- DEBIAN = logiciel.x.y.deb
x et y correspondent aux numéros de version du logiciel.
dpkg
[modifier | modifier le wikicode]dpkg est le programme qui permet d'installer, mettre à jour et supprimer un logiciel en format DEB. Sur Redhat, la commande rpm fait la même chose.
Installer un fichier DEB
[modifier | modifier le wikicode]L'option -i (i: install) de dpkg (debian package) permet d'installer un fichier DEB :
# dpkg -i logiciel-x.y.deb
Connaitre la liste de tous les logiciels installés
[modifier | modifier le wikicode]L'option -l (l : list) permet de connaitre la liste de tous les logiciels installés :
# dpkg -l ii iamerican 3.1.20.0-4.3 An American English dictionary for ispell ii ibritish 3.1.20.0-4.3 A British English dictionary for ispell ii icedax 1.1.2-1 Creates WAV files from audio CDs ii iceweasel 2.0.0.6-0etch1 lightweight web browser based on Mozilla ii iceweasel-gnome-support 2.0.0.6-0etch1 Support for Gnome in Iceweasel ...
Savoir quel package a installé tel fichier
[modifier | modifier le wikicode]L'option -S permet de savoir quel package a installé tel fichier :
# dpkg -S /etc/crontab cron: /etc/crontab
Connaitre le descriptif d'un package installé
[modifier | modifier le wikicode]L'option --status permet de consulter le descriptif d'un package installé :
# dpkg --status dosfstools Package: dosfstools Status: install ok installed Priority: optional Section: otherosfs Installed-Size: 144 Maintainer: Roman Hodek <roman@hodek.net> Architecture: i386 Source: dosfstools (2.11-2.1) Version: 2.11-2.1+b1 Replaces: mkdosfs Depends: libc6 (>= 2.3.6-6) Conflicts: mkdosfs Description: Utilities to create and check MS-DOS FAT filesystems Inside of this package there are two utilities (mkdosfs alias mkfs.dos, and dosfsck alias fsck.msdos) to create and to check MS-DOS FAT filesystems on either hard disks or floppies under Linux. This version uses the enhanced boot sector/superblock format of DOS 3.3+ as well as provides a default dummy boot sector code.
On apprend notamment :
- la priorité : s'agit-il d'un package indispensable ou optionnel ?
- la taille disque occupée par le package installé
- le nom et l'email du mainteneur Debian
- l'architecture
- le numéro de verstion
- les dépendances
- une description courte et longue
Autres options de dpkg
[modifier | modifier le wikicode]La commande dpkg dispose d'une page de manuel détaillant toutes les options disponibles :
# man dpkg
apt-get
[modifier | modifier le wikicode]La commande apt-get permet d'installer, mettre à jour et supprimer les logiciels. Le principal avantage d'apt-get par rapport à dpkg est sa capacité à télécharger les packages sur les mirroirs Debian et de résoudre les dépendances nécessaires au logiciel, et ceci de façon récursive.
Installer un logiciel
[modifier | modifier le wikicode]L'option install de la commande apt-get permet d'installer un logiciel :
# apt-get install scribus Lecture des listes de paquets... Fait Construction de l'arbre des dépendances... Fait Les paquets supplémentaires suivants seront installés : blt python-imaging python-imaging-tk python-tk tk8.4 Paquets suggérés : blt-demo python-imaging-doc tix scribus-template scribus-doc ttf-bitstream-vera Les NOUVEAUX paquets suivants seront installés : blt python-imaging python-imaging-tk python-tk scribus tk8.4 0 mis à jour, 6 nouvellement installés, 0 à enlever et 3 non mis à jour. Il est nécessaire de prendre 8467ko dans les archives. Après dépaquetage, 24,2Mo d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ?
Note: apt-get install va télécharger tous les packages nécessaires au bon fonctionnement du logiciel, et apeller dpkg -i sur chaque fichier DEB téléchargés.
Il existe plus de 300 miroirs DEBIAN
Rajouter des mirroirs
[modifier | modifier le wikicode]On peut rajouter des miroirs à apt-get en modifiant le fichier /etc/apt/sources.list. Ce fichier contient la liste des mirroirs officiels DEBIAN, et on peut rajouter d'autres mirroirs.
# cat /etc/apt/sources.list deb cdrom:[Debian GNU/Linux 4.0 r1 _Etch_ - Official i386 NETINST Binary-1 2007$ deb http://ftp.fr.debian.org/debian/ etch main contrib non-free deb-src http://ftp.fr.debian.org/debian/ etch main contrib non-free deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib
On peut rajouter à ce fichier un miroir contenant des fichiers DEB non-intégrés dans les miroirs officiels Debian :
deb http://www.virtualbox.org/debian etch non-free
Mettre à jour la liste des logiciels disponibles
[modifier | modifier le wikicode]Chaque fois que l'on modifie le fichier /etc/apt/sources.list, il faut lancer la commande apt-get update pour récupérer la liste des nouveaux logiciels :
# apt-get update # apt-get install virtualbox
Note: apt-get utilise la commande wget pour télécharger les fichiers.
Mettre à jour tous les logiciels installés
[modifier | modifier le wikicode]L'option upgrade de apt-get prend la liste des paquets installés, regarde sur le dépôt si ces logiciels sont disponibles dans une version plus récentes. Si c'est le cas, cette commande va mettre à jour ces logiciels.
Effacer les fichiers DEB installés
[modifier | modifier le wikicode]Par défaut, la commande apt-get conserve tous les fichiers DEB installés dans le répertoire /var/cache/apt/archives.
L'option clean permet d'effacer les fichiers DEB que l'on a installé :
# apt-get clean # ls -l /var/cache/apt/archives total 0
Autres options de apt-get
[modifier | modifier le wikicode]La commande apt-get dispose d'une page de manuel détaillant toutes les options disponibles :
# man apt-get
apt-cache
[modifier | modifier le wikicode]Chercher un package
[modifier | modifier le wikicode]L'option search de la commande apt-cache permet de rechercher un terme sur les paquets installés et non-installés.
# apt-cache search vob gaupol - subtitle editor for text-based subtitle files gopchop - Fast, lossless cuts-only editor for MPEG2 video files gstreamer0.8-mpeg2dec - MPEG1 and MPEG2 video decoder plugin for GStreamer libogg-vorbis-header-pureperl-perl - A pure Perl interface to Ogg Vorbis information fields livemedia-utils - multimedia RTSP streaming tools mplayer - The Movie Player python-vobject - parse iCalendar and VCards in python vobcopy - A tool to copy DvD VOBs to hard disk
Voir les informations d'un package
[modifier | modifier le wikicode]L'option show de la commande apt-cache permet de voir les informations d'un paquet (installé ou non).
# apt-cache show k3b ...
Autres options de apt-cache
[modifier | modifier le wikicode]La commande apt-cache dispose d'une page de manuel détaillant toutes les options disponibles :
# man apt-cache
aptitude
[modifier | modifier le wikicode]La commande aptitude est un remplaçant d'apt-get, son principal avantage est de désinstaller les dépendances.
apk
[modifier | modifier le wikicode]Si la distribution est basée sur Alpine Linux, elle renvoie :
apt-get: not found dpkg: not found
Il faut alors utiliser apk update et apk add. Ex :
sudo apk add --update telnet
synaptic
[modifier | modifier le wikicode]Le programme synaptic permet d'effectuer les mêmes opérations que la commande apt-get depuis l'interface graphique.
Les documentations des packages
[modifier | modifier le wikicode]Chaque package Debian est accompagné d'une documentation. Ces documentations se trouvent dans le répertoire /usr/share/doc :
/usr/share/doc/<nom du package>/
Certaines documentations sont compressées en gzip afin d'économiser de la place disque. On peut utiliser les commandes zcat, zmore ou zless pour visualiser ces fichiers sans avoir à les décompresser :
# zmore /usr/share/doc/python/python-policy.txt.gz
Installer un logiciel à partir des sources
[modifier | modifier le wikicode]Dans certains cas, on peut être amené à devoir installer un logiciel à partir des fichiers sources :
- le logiciel n'est pas disponible sous Debian en .DEB
- on a besoin d'une version plus récente du logiciel
- on a besoin d'une option uniquement activable durant la compilation
- ...
Pour faire ceci, on télécharge les sources du logiciel et on va les compiler.
Debian fournit un répertoire particulier destiné à accueillir les programmes installés à la main : /usr/local.
Si on regarde le contenu de ce répertoire, on constate qu'il contient des sous-répertoires déjà présents à la racine :
# ls /usr/local/ bin etc games include lib man sbin share src
Ces répertoires vont accueillir tous les fichiers des programmes installés à la main :
- les exécutables : /usr/local/bin ou /usr/local/sbin
- les fichiers de configuration : /usr/local/etc
- les librairies : /usr/local/lib
- les pages de man : /usr/local/man
- les fichiers communs (icones, traductions ...) : /usr/local/share
- ...
Pour illustrer cette méthodologie, nous allons installer pidgin.
Tout d'abord, on télécharge les fichiers sources du logiciel dans le répertoire /usr/local/src :
# cd /usr/local/src # wget http://downloads.sourceforge.net/pidgin/pidgin-2.3.0.tar.bz2 # tar xjf pidgin-2.3.0.tar.bz2 # cd pidgin-2.3.0
La première chose à faire est de lire le fichier README :
# more README
On apprend dans ce fichier qu'il faut lire le fichier INSTALL pour connaître les dépendances et la procédure pour compiler le logiciel :
# more INSTALL
Comme dans la majorité des logiciels écrits en langage C, il faut effectuer la procédure standard : ./configure; make; make install .
On lance donc la première commande :
# ./configure
Cette étape se solde par une erreur : pidgin a besoin de la librairie perl XML parser. On cherche donc le paquet Debian contenant cette librairie :
# apt-cache search perl xml parser ... libxml-parser-perl - Perl module for parsing XML files ...
On installe donc le packet libxml-parser-perl :
# apt-get install libxml-parser-perl
On relance le ./configure :
# ./configure
Cette étape se solde à nouveau par une erreur : pidgin a besoin de la librairie de développement glib2. On cherche donc le paquet Debian contenant cette librairie et on l'installe :
# apt-cache search glib 2 dev ... libglib2.0-dev - Development files for the GLib library ... # apt-get install libglib2.0-dev
On relance le ./configure :
# ./configure
Cette étape se solde à nouveau par une erreur : pidgin a besoin de la librairie de développement xml2. On cherche donc le paquet Debian contenant cette librairie et on l'installe :
# apt-cache search lib xml2 dev ... libxml2-dev - Development files for the GNOME XML library ... # apt-get install libxml2-dev
On relance le ./configure :
# ./configure ... Pidgin will be installed in /usr/local/bin.
configure complete, now type 'make'
Cette fois-ci, l'étape s'est terminée sans erreur et on peut lancer la compilation :
# make ... # make install ...
Ca y est (enfin!), le logiciel s'est correctement installé, et l'exécutable a été copié dans le répertoire /usr/local/bin :
# ls -l /usr/local/bin total 2280 -rwxr-xr-x 1 root staff 2329930 2007-12-07 10:06 pidgin
On peut désormais lancer le logiciel et l'utiliser :
$ pidgin