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 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

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

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

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

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

La commande dpkg dispose d'une page de manuel détaillant toutes les options disponibles :

 # man dpkg

apt-get

modifier

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

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

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

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

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

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

La commande apt-get dispose d'une page de manuel détaillant toutes les options disponibles :

 # man apt-get

apt-cache

modifier

Chercher un package

modifier

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

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

La commande apt-cache dispose d'une page de manuel détaillant toutes les options disponibles :

 # man apt-cache

aptitude

modifier

La commande aptitude est un remplaçant d'apt-get, son principal avantage est de désinstaller les dépendances.

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

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

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

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


À faire... 

parler de checkinstall