Support N°2 : Installation d`un système Debian Gnu/Linux

Transcription

Support N°2 : Installation d`un système Debian Gnu/Linux
Le système d'exploitation Debian Gnu/Linux
C. HEMDANI
Support N°2 :
Installation d'un système Debian Gnu/Linux
Table des matières
1 Installation de Debian
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
Support d'installation . . . . . .
1.1.1 Images pour l'architecture
1.1.2 Images pour l'architecture
Boot sur le support . . . . . . . .
Choix des langues et pays . . . .
Paramètres du réseau . . . . . .
Comptes root et utilisateur . . .
Partitionnement les disques . . .
Installation . . . . . . . . . . . .
Fin d'installation et redémarrage
. . . . .
i386 . .
x86_64
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
: le gestionnaire de packages . . . . . . . . . . .
Installation, mise à jour et suppression . . . . . . . .
Requêtes dpkg . . . . . . . . . . . . . . . . . . . . .
2.3.1 Lister les packages . . . . . . . . . . . . . . .
2.3.2 Recherche d'un package contenant un chier
2.3.3 Lister le contenu d'un package . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Debian Package
2.1
2.2
2.3
dpkg
3 Le gestionnaire APT
3.1
3.2
3.3
3.4
3.5
Principe . . . . . . . . . . . .
Les dépôts de packages . . . .
3.2.1 Conguration . . . . .
3.2.2 Mise à jour de la base
Mise à jour de la distribution
Recherche et installation d'un
Client graphique . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
package individuel
. . . . . . . . . . .
6
6
6
7
7
7
7
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 7
. 8
. 8
. 9
. 9
. 9
. 10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Répertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliothèques liées à un programme . . . . . . . . . . . . . . .
Conguration du cache de l'éditeur de liens . . . . . . . . . .
5.4.1 Ajout de nouveaux chemins de bibliothèques partagées
5.4.2 Regénération du cache . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Obtenir les sources . . . . . . . . . . . . .
Pré-requis et dépendances . . . . . . . . .
Conguration, compilation et installation
Désinstallation . . . . . . . . . . . . . . .
5 Gestion des bibliothèques partagées
5.1
5.2
5.3
5.4
1
1
1
1
2
3
3
3
5
5
.
.
.
.
.
.
.
4 Installation depuis les sources
4.1
4.2
4.3
4.4
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
10
10
11
11
11
11
12
12
12
12
Le système d'exploitation Debian Gnu/Linux
C. HEMDANI
Support N°2 :
Installation d'un système Debian Gnu/Linux
1
Installation de Debian
Dans cette section, on montre, étape par étape, comment installer une distribution Debian. Il s'agit de la
dernière version stable, soit la Wheezy 7.7.0, à l'écriture de ce support. L'installation est eectuée en mode
graphique. Pour les besoins de prises de copies d'écrans, Debian a été installée sur une machine virtuelle
VirtualBox. VirtualBox est un produit qui n'est pas libre mais gratuit. Il est la propriété d'Oracle.
1.1 Support d'installation
L'image ISO correspondant à une installation via un CD ou un DVD, peut être récupérée à partir du site
de Debian :
1.1.1 Images pour l'architecture i386
Image CD :
http://cdimage.debian.org/debian-cd/7.7.0/i386/iso-cd/debian-7.7.0-i386-CD-1.iso
Image DVD :
http://cdimage.debian.org/debian-cd/7.7.0/i386/iso-dvd/debian-7.7.0-i386-DVD-1.iso
1.1.2 Images pour l'architecture x86_64
Image CD :
http://cdimage.debian.org/debian-cd/7.7.0/amd64/iso-cd/debian-7.7.0-amd64-CD-1.iso
Image DVD :
http://cdimage.debian.org/debian-cd/7.7.0/amd/iso-dvd/debian-7.7.0-amd64-DVD-1.iso
Après récupération de l'image, if faudra la graver sur un CD ou un DVD. Pour illustrer l'installation de
Debian, nous allons utiliser une image DVD, à savoir le chier debian-7.7.0-amd64-DVD-1.iso.
1.2 Boot sur le support
Le démarrage à partir du lecteur DVD ache immédiatement le premier écran de l'installateur.
1
Figure 1 Démarrage de l'installation.
Install: permet de lacer l'installation en mode texte,
Graphic install: permet de la lancer en mode graphique,
Advanced options:propose d'autres modes d'installation (expert, secourt ou automatique) et la possibilité
d'installer un autre environnement de bureau autre que gnome (KDE, Xfce ou LXDE),
Help: propose plusieurs pages d'aide activables au moyen des touches [F1] à [F10].
Pour notre illustration, on sélectionne Graphical install puis on tape sur la touche [Entrée].
1.3 Choix des langues et pays
Figure 2 Choix de la langue.
2
Trois écrans permettent de choisir :
La langue utilisée dans le processus d'installation : dans notre cas, on choisit le français.
La situation géographique : c'est utile car c'est ainsi que sont positionnées les variables locales : format de
date, d'heure, encodage des caractères, formats numériques et monétaires, ... Dans notre cas, on choisit
autre puis dans les trois prochains écrans, on choisit Afrique puis Algérie et enn fr_FR.UTF-8 pour
l'encodage des caractères.
Le type de clavier : dans notre cas, on choisit français (clavier azerty).
Remarque 1
Sur l'écran de la gure 2 et les suivants,
1. la sélection d'un item peut se faire de diérentes manières :
on se positionne sur lui au moyen des touches de navigation [Haut] et [Bas], ou de la souris, puis
on tape sur la touche [Entrée], ou bien on clique sur le bouton Continuer, ou bien encore
par un simple double-clic sur l'item.
2. On peut à tout moment revenir en arrière pour modier des choix eectués précédemment en cliquant
sur le bouton Go Back ou Revenir en arrière.
1.4 Paramètres du réseau
Les trois étapes suivantes concernent les informations réseau de base. Si l'installateur n'a pas réussi à
congurer la carte réseau par DHCP, il demandera de saisir les informations de base : adresse IP, masque
de sous réseau, passerelle par défaut, DNS. Puis, on doit saisir un nom d'hôte (le nom de la machine sur le
réseau) et le nom du domaine.
Si la machine n'appartient à aucun domaine, on laisse le champ vide.
Dans notre cas, on choisit debian comme nom d'hôte et depinfo.to comme nom de domaine 1 .
1.5 Comptes root et utilisateur
On doit maintenant saisir le mot de passe de l'administrateur (root ) de la machine. Celui-ci sera demandé
deux fois pour conrmation. On doit veiller à ne pas le perdre car il n'y a aucun moyen de le retrouver. Debian
prévient et peut même refuser un mot de passe s'il est trop simple.
On doit ensuite créer au moins un simple utilisateur. Pour cela, on doit saisir
le nom complet de la personne ; dans notre cas Étudiant en Master 1 RMSE,
l'identiant (ou le nom de connexion) ; dans notre cas etudiant, et
un mot de passe à saisir deux fois.
1.6 Partitionnement les disques
Pour simplier, disons qu'on a le choix entre deux principales méthodes pour partitionner les disques :
une méthode assistée (voire automatique) en utilisant le partitionnement classique, et
une méthode manuelle.
Dans le cas d'une nouvelle machine (disque vierge), la méthode assistée donne de bons résultats. Si on
réinstalle le système, ou que l'on veut installer Debian sur une machine disposant déjà de partitions contenant d'autres systèmes ou données, il est vivement recommandé de passer par un partitionnement manuel
(personnalisé).
Si on choisit la première méthode, on accède à l'écran suivant. Pour les besoins de ce support, un espace
(à taille dynamique) de 17,2 Go a été créé sous VirtualBox comme premier disque. C'est celui-ci qui va servir
pour l'installation.
1. Pour les machines du département, le nom de domaine depinfo.to a été xé par le responsable du centre de calcul.
3
Figure 3 Schémas de partitionnements.
L'étape suivante consiste à choisir le schéma de partitionnement :
Soit une seule grosse partition dans laquelle on met tout (système, programmes, données). Tout sera
mis dans la partition racine /.
Soit deux partitions :
une partition racine / qui contiendra le système et tous ses composants (programmes, chiers de
conguration système, etc.), et
une partition /home qui va contenir les données des utilisateurs.
Pour un poste de travail (ou un PC personnel), c'est la méthode la plus pertinente : elle permet de
réinstaller facilement un autre système (mise à jour ou réinstallation complète) sans casser les données
personnelles : la nouvelle distribution ainsi installée pourra réutiliser la partition montée sur /home et
ainsi récupérer les données.
La troisième méthode propose de créer cinq partitions diérentes :
la racine /,
les données personnelles /home,
les composants utilisateurs (programmes, bibliothèques, données partagées associées, etc.) /usr,
le contenu variable /var, et
les chiers temporaires /tmp.
Ce choix est tout à fait pertinent sur un serveur. Les mails, informations DHCP, sites web, ... sont
souvent stockés dans /var. Les mises à jour des divers programmes (services) sont dans /usr, etc. Ce
schéma de partitionnement est quasi-parfait : tout est indépendant. Il devient bien plus simple ensuite
de changer de disque, de migrer les données, d'étendre la taille des volumes, ... sans casser le reste.
Pour notre l'installation de test, on utilisera la seconde méthode, la suite des opérations se base sur celui-ci.
S'agissant d'une méthode semi-automatique, Debian indique les choix pour chacune des partitions. On
constate la présence de trois partitions au lieu des deux proposées. Debian a analysé la taille mémoire de la
machine et propose la création d'une zone de swap correspondant au meilleur choix possible.
4
Figure 4 Partitionnement automatique.
L'outil de partitionnement propose de créer une seule partition primaire (n°1) pour la racine / et deux
partitions logiques (n°5 pour le swap et n°6 pour le répertoire /home) au sein d'une partition étendue.
Comme ce schéma de partitionnement convient à notre installation, on le valide. L'écran suivant donne
un récapitulatif qu'on doit de nouveau valider.
Remarque 2
Le partitionnement est suivi de l'écriture des systèmes de chiers sur les partitions concernées. Cette
opération est identique au formatage sous Windows ; elle est destructive !
Une fois les changements validés, une barre de progression indique l'état d'avancement du partitionnement
et de l'écriture des nouveaux systèmes de chiers. Debian va ensuite monter ces systèmes pour l'installation.
1.7 Installation
L'installation se déroule en deux étapes principales :
1. Le système de base (noyau, utilitaires et bibliothèques) est installé sur le disque.
2. On choisit d'installer un ou plusieurs ensembles de logiciels (applications) prédénis et groupés par
thèmes. Dans notre cas, on installe les utilitaires standards et l'environnement graphique (gnome par
défaut).
Ces étapes passées, l'installation commence.
1.8 Fin d'installation et redémarrage
La dernière étape avant la n de l'installation est l'écriture du chargeur de démarrage (boot loader ). Il s'agit
de l'installation de GRUB. C'est très simple ici car c'est le seul système installé. Il faut savoir que le chargeur
de démarrage écrase celui précédemment installé, mais qu'on peut parfaitement utiliser grub pour démarrer
n'importe quel système y compris Windobe (pardon, windows). Si tout va bien et que la carte graphique a
été reconnue, on devrait arriver sur le gestionnaire de sessions qui attend une connexion.
5
Figure 5 Écran de connexion.
2
Debian Package
2.1 dpkg : le gestionnaire de packages
La commande dpkg est chargée de l'installation, la création, la suppression et la gestion des packages
Debian. Ces packages portent l'extension .deb. La base de données dpkg est placée dans /var/lib/dpkg. Les
chiers qui y sont présents sont au format texte. Le chier /var/lib/dpkg/status contient l'intégralité des
packages connus par dpkg avec leurs états.
dpkg dispose d'une interface graphique, gdebi, qui permet d'éviter l'utilisation de la ligne de commande.
2.2 Installation, mise à jour et suppression
L'option -i ou --install installe le ou les packages passés comme argument.
Exemple 1
La commande
# dpkg -i package . deb
installera le package package.deb.
Notons que dpkg ne gère pas seul les dépendances. S'il manque des dépendances, la commande le signalera.
Dans ce cas, on doit installer les dépendances de la même manière avant d'installer le package désiré. On peut
demander l'installation de tous les packages présents au sein d'une arborescence avec le paramètre -R (pour
recursive ). Dans ce cas, on indique comme argument un nom de répertoire.
Exemple 2
La commande
# dpkg -R rep
installera tous les packages présents dans le répertoire rep et ses sous-répertoires.
La mise à jour s'eectue de la même manière que l'installation, avec le -i. Si on installe un package déjà
présent, dpkg en eectue une mise à jour.
La suppression d'un package s'eectue avec le paramètre -r (remove ). Là encore, c'est à nous de gérer les
dépendances.
Remarque 3
Pour la commande dpkg -r, on donne seulement le nom du package, sans le numéro de version, ni l'extension (.deb).
6
Avec l'option -r, dpkg ne supprime pas les chiers de conguration et ce, an d'éviter une reconguration
de l'outil si on venait à le réinstaller. Pour tout supprimer, y compris ces chiers, on remplace le paramètre
-r par -P (purge ).
2.3 Requêtes dpkg
2.3.1 Lister les packages
On peut lister tous les packages Debian connus du système avec le paramètre -l ; soit :
$ dpkg -l
On peut aussi indiquer un motif particulier.
Exemple 3
La commande
$ dpkg -l " kernel *"
achera la liste de tous les packages dont le nom commence par kernel.
2.3.2 Recherche d'un package contenant un chier
Le paramètre -S suivi du nom d'un chier permet de retrouver le package d'origine.
Exemple 4
$ dpkg -S / usr / bin / lex
flex : / usr / bin / lex
Le programme /usr/bin/lex a donc été installé à partir du package flex.
2.3.3 Lister le contenu d'un package
Le paramètre -L liste le contenu du ou des packages indiqués.
Exemple 5
La commande
$ dpkg -L flex
permet de lister tous les chiers installé à partir du package flex.
3
Le gestionnaire APT
3.1 Principe
L'outil dpkg contrôle les dépendances des packages pour autoriser ou non leur installation, mais ne les gère
pas. Autrement dit, si une dépendance sur un package est absente, il ne sera pas installé, sauf si la dépendance
est résolue :
soit en installant auparavant les packages manquants,
soit en indiquant sur la même ligne les chemins vers ces mêmes packages.
De même, lors d'une mise à niveau, il se pose un problème avec les chiers de conguration. Que faut-il
en faire ? APT 2 permet de résoudre ces problèmes en gérant les dépendances à la place de l'administrateur.
Au lieu de spécier un package (local ou distant), il prend en charge des dépôts de packages situés sur un CD,
un DVD, dans un répertoire local, sur une source distante sur Internet (ftp ou http), ... Un dépôt contient
un ensemble de packages qui dépendent soit les uns des autres, soit d'autres packages en provenance d'autres
dépôts. APT peut gérer plusieurs dépôts, à divers endroits. Il se débrouille seul : lorsqu'on installe un package,
il installe aussi ses dépendances (s'il les trouve).
2.
Advanced Packaging Tool.
7
3.2 Les dépôts de packages
3.2.1 Conguration
Les dépôts sont indiqués dans le chier /etc/apt/sources.list. Le chier suivant provient d'une installation Debian Wheezy.
$ cat / etc / apt / sources . list
deb
deb
deb
deb
deb
http :// ftp . debian . org / debian / wheezy main contrib non - free
http :// ftp . debian . org / debian / wheezy - updates main contrib non - free
http :// ftp . debian . org / debian / wheezy - proposed - updates main contrib non - free
http :// ftp . debian . org / debian / wheezy - backports main contrib non - free
http :// security . debian . org / wheezy / updates main contrib non - free
La syntaxe d'une ligne du chier sources.list est la suivante :
deb uri distribution composant1 composant2 . . .
uri est le chemin vers la racine du ou des dépôts. Ce peut être une URL de type http ou ftp, mais
aussi un chemin local (file), un CD-Rom ou DVD-Rom (CDrom), un chemin ssh, ...
distribution est, comme son nom l'indique, le nom de la distribution Debian. Ici c'est wheezy, mais
il est possible de spécier d'autres versions de la distribution (etch, lenny, squeese, wheezy, jessie,
...) pour pouvoir récupérer des packages d'autres dépôts, plus récents par exemple.
composant1 composant2 ... sont les noms des dépôts pour la distribution donnée.
Le site http://ftp.debian.org/debian/dists contient les toutes dernières distributions ocielles et
leurs composants.
L'url complète d'accès au dépôt permet de reconstituer l'uri, la distribution et les composants, et vice
versa.
Exemple 6
La ligne
deb http :// ftp . debian . org / debian / wheezy main contrib non - free
correspond aux trois URLs :
http :// ftp . debian . org / debian / dists / wheezy / main
http :// ftp . debian . org / debian / dists / wheezy / contrib
http :// ftp . debian . org / debian / dists / wheezy / non - free
Si on explore l'une de ces URLs, par exemple main, on trouve une série de dossiers suxés en fonction de
l'architecture. Les packages binaires pour une machine de type amd64 seront donc cherchés dans le répertoire
binary-amd64 qui contient, non pas les packages eux mêmes, mais des chiers :
Release : description du dépôt.
Packages.gz : index des packages du dépôt, au format gzip.
Packages.bz2 : la même chose au format bzip2.
Où sont réellement les packages ? La réponse est dans les chiers Packages.gz et Packages.bz2. Voici un
fragment de l'un d'eux, décrivant le package libc6 :
Package : libc6
Source : eglibc
Version : 2.13 -38+ deb7u6
Installed - Size : 9460
Maintainer : GNU Libc Maintainers < debian - glibc@lists . debian . org >
Architecture : amd64
Replaces : libc6 - amd64
Provides : glibc -2.13 -1
Depends : libc - bin (= 2.13 -38+ deb7u6 ) , libgcc1
Suggests : glibc - doc , debconf | debconf -2.0 , locales
Conflicts : prelink ( <= 0.0.20090311 -1) , tzdata ( < < 2007 k -1) , tzdata - etch
Breaks : locales ( < < 2.13) , locales - all ( < < 2.13) , lsb - core ( <= 3.2 -27) ,
nscd ( < < 2.13)
Description : Embedded GNU C Library : Shared libraries
Multi - Arch : same
8
Homepage : http :// www . eglibc . org
Description - md5 : 5089 b4da6684d7432ab618fb5b79cec5
Tag : implemented - in :: c , role :: shared - lib
Section : libs
Priority : required
Filename : pool / main / e / eglibc / libc6_2 .13 -38+ deb7u6_amd64 . deb
Size : 4214430
MD5sum : 9 b27368e31cdfd76a7c8b52c093f1f0a
SHA1 : 3 ba181018445c4449456655b965fa389819dae9f
SHA256 : df4b81ecd17ddefa3ba1268d64465fa2439ebf934dae180495040ff3d767c2a3
La ligne Filename indique que le chier est dans pool/main/e/eglibc/ depuis l'uri, donc accessible depuis
l'URL http://ftp.debian.org/debian/pool/main/e/eglibc/.
Les lignes Depends et Recommends, permettent à APT de résoudre les dépendances.
3.2.2 Mise à jour de la base
Une fois les dépôts congurés, on doit mettre à jour la base de données locale de APT avec la commande :
# apt - get update
3.3 Mise à jour de la distribution
Une fois les dépôts à jour, on peut mettre à jour en une seule commande tous les packages installés sur la
distribution au moyen de la commande :
# apt - get upgrade
APT vérie si des packages plus récents sont disponibles dans les dépôts. Il se base pour cela sur la base
de données locale. Si elle n'est pas à jour, APT nous informe qu'un certain nombre de packages peuvent
être mis à jour. On peut accepter ou refuser. Si on accepte, APT télécharge ces packages et leurs éventuelles
dépendances, et les installe. Le processus peut être plus ou moins long selon le nombre de mises à jour et le
type de support.
Une autre possibilité est de faire une mise à jour profonde (ou mise à niveau). APT garde une certaine
cohérence dans les packages lors de la mise à jour, notamment concernant la version de la distribution. On
peut spécier plusieurs distributions Debian dans les dépôts. Mais même si une distribution est plus récente,
un simple upgrade ne va pas transformer celle installée en la toute dernière. On peut demander à APT de
forcer la mise à jour vers la nouvelle distribution avec la commande :
# apt - get dist - upgrade
3.4 Recherche et installation d'un package individuel
La commande
$ apt - cache search <clé >
permet de rechercher un package, par son nom ou sa description, au sein de la base de données locale
APT.
Exemple 7
La commande
$ apt - cache search eclipse
ache une longue liste de descriptions de packages ayant un rapport avec l'environnement de développement
intégré eclipse.
La commande
# apt - get install <nom - package >
installe le package <nom-package> et ses dépendances.
Exemple 8
La commande
# apt - get install byacc
installe le package byacc (un générateur d'analyseurs syntaxiques ascendants).
9
3.5 Client graphique
L'outil synaptic est un front-end : une interface graphique qui fait appel aux fonctions de
toutes les opérations proposées par APT tout en étant très convivial.
APT.
Il permet
Figure 6 L'outil synaptic.
4
Installation depuis les sources
4.1 Obtenir les sources
Il n'est parfois pas possible d'obtenir un logiciel ou une bibliothèque depuis un package pour sa distribution.
Dans ce cas, il reste la solution de compiler et d'installer soi-même le produit depuis les sources. Une archive
source est souvent récupérée sur divers sites Internet. C'est une archive souvent compressée au format tgz
(archive tar compressée avec gzip) ou tar.bz2 (archive tar compressée au format bzip2). Elle contient :
le code source sous forme de chiers .c, .h, .cpp, ..., selon le langage,
parfois un chier Makefile permettant d'automatiser la compilation du produit,
souvent un chier configure permettant de générer le chier Makefile en fonction de l'installation et
de diverses options.
4.2 Pré-requis et dépendances
Pour compiler un logiciel, il faut respecter quelques pré-requis :
présence de l'outil make,
présence du ou des compilateurs nécessaires, notamment gcc,
présence des dépendances : bibliothèques, interpréteurs, ...
4.3 Conguration, compilation et installation
La procédure classique d'installation d'un logiciel à partir des sources suit souvent (mais pas nécessairement !) les étapes suivantes :
1. Décompresser l'archive par la commande
$ tar zxvf <archive>
# pour les archives d'extension .tgz ou .tar.gz
ou bien
$ tar jxvf <archive>
# pour les archives d'extension .tar.bz2
La décompression doit créer un répertoire, disons rep, contenant tous les chiers du logiciel.
10
2. $ cd rep
3. Exécuter la commande
$ ./configure
qui analyse le système installé pour vérier la satisfaction des pré-requis et des dépendances avant de
générer un chier Makefile qui décrit les processus de compilation, d'installation, de nettoyage, de
désinstallation, ... et qui sera utilisé par l'outil make.
4. Lancer le processus de compilation par la commande
$ make
5. Enn, si la compilation réussit, on peut installer le logiciel par la commande suivante qui doit être
exécutée par le super-utilisateur (root ) :
# make install
6. Après l'installation, on peut utiliser la commande suivante pour nettoyer le répertoire des sources ; i.e.,
supprimer tous les chiers générés par la compilation.
$ make clean
4.4 Désinstallation
La plupart des Makefile, en tout cas ceux générés par congure, permettent la désinstallation. Elle
s'eectue par la commande
$ make uninstall
Remarque 4
Pour un logiciel particulier, les commandes de conguration, compilation, installation, ... peuvent ne pas
être celles décrites ci-dessus. Il convient dans tous les cas, avant d'entamer le processus d'installation, de lire la
documentation qui accompagne (en principe) toujours les sources : chiers Readme ou README, INSTALL,
...
5
Gestion des bibliothèques partagées
5.1 Principe
Une bibliothèque partagée est un chier particulier qui contient une liste de fonctions, ou API, accessible
à tout programme ayant besoin sans avoir à les ré-écrire. À l'opposé de la bibliothèque statique, le programme
accède dynamiquement aux fonctions qui sont placées dans un chier à part.
N programmes diérents peuvent accéder aux fonctions proposées par la bibliothèque. Les bibliothèques
regroupent des fonctions propres à un domaine ou un ensemble de domaines cohérents : traitement d'images, du
son, de l'accès à une base de données, ... Un ensemble de fonctions proposées par une ou plusieurs bibliothèques
partagées forme une API.
Un lien est établi entre le programme et une bibliothèque partagée lors de l'étape de l'édition des liens par
l'éditeur de liens ld, lui-même appelé par le compilateur gcc avec l'option -l<lib>. Si un programme dépend
d'une bibliothèque partagée et que celle-ci est absente, le programme ne pourra plus fonctionner. Sous Linux
(et Unix en général) les bibliothèques partagées sont appelées des Shared Objects qui portent le suxe .so
5.2 Répertoires
Les bibliothèques partagées sont par convention placées dans des répertoires appelés lib :
/lib : bibliothèques systèmes de base, vitales pour le système,
/usr/lib : bibliothèques utilisateur de base, non nécessaires au démarrage,
/usr/local/lib : bibliothèques pour applications installées par l'utilisateur (souvent, à partir des
sources),
...
Remarque 5
La bibliothèque la plus importante du système est la bibliothèque C. Tous les programmes compilés sont
liés à libc. Il sut de supprimer ce chier (une erreur de débutant !) pour faire tomber tout le système. 11
5.3 Bibliothèques liées à un programme
La commande ldd permet de déterminer quelles sont les bibliothèques liées à un programme, et aussi si
celles-ci sont présentes ou non.
$ ldd / usr / bin / vi
linux - vdso . so .1 = > (0 x00007fff781ff000 )
libtinfo . so .5 = > / lib / x86_64 - linux - gnu / libtinfo . so .5 (0 x00007f0475da1000 )
libselinux . so .1 = > / lib / x86_64 - linux - gnu / libselinux . so .1 (0 x00007f0475b81000 )
libacl . so .1 = > / lib / x86_64 - linux - gnu / libacl . so .1 (0 x00007f0475977000 )
libc . so .6 = > / lib / x86_64 - linux - gnu / libc . so .6 (0 x00007f04755eb000 )
libdl . so .2 = > / lib / x86_64 - linux - gnu / libdl . so .2 (0 x00007f04753e7000 )
/ lib64 / ld - linux - x86 -64. so .2 (0 x00007f0475fe8000 )
libattr . so .1 = > / lib / x86_64 - linux - gnu / libattr . so .1 (0 x00007f04751e1000 )
5.4 Conguration du cache de l'éditeur de liens
L'édition des liens avec une bibliothèque partagée est dynamique et se fait au moment de l'exécution
du programme par le système à l'aide de la bibliothèque ld-linux.so. L'exécutable fournit le nom des
bibliothèques à lier à l'exécution, mais pas le chemin. Les fonctions de ld-linux.so déterminent en fonction
de son nom, la bibliothèque à utiliser parmi les chemins qu'elles connaissent. Tout programme est lié à la
bibliothèque ld-linux.so (/lib/ld-linux.so.2).
ld-linux.so recherche les bibliothèques dans plusieurs endroits dont, et dans cet ordre :
les chemins précisés dans la variable d'environnement LD_LIBRARY_PATH. Les chemins sont séparés,
comme pour PATH, par des ':',
le contenu du chier /etc/ld.so.cache qui contient une liste compilée (format binaire) des bibliothèques
trouvées dans les chemins prédénis,
les répertoires /lib et /usr/lib. La recherche dans /lib et /usr/lib est implicite.
5.4.1 Ajout de nouveaux chemins de bibliothèques partagées
Pour éviter la dénition de la variable LD_LIBRARY_PATH, ld-lunux.so propose un cache qu'on peut
modier. Le cache est construit depuis le contenu du chier /etc/ld.so.conf et de la commande ldconfig.
/etc/ld.so.conf contient la liste des répertoires contenant les bibliothèques partagées.
$ cat / etc / ld . so . conf
include / etc / ld . so . conf . d /*. conf
A l'installation du système, /etc/ld.so.conf contient l'unique ligne indiquant l'inclusion des contenus
de tous les chier du répertoire /etc/ld.so.conf.d/ ayant pour extension .conf
On peut maintenant modier le chier, par exemple, pour ajouter le chemin /usr/local/lib si ce dernier
contient des bibliothèques partagées qu'on voudrait lier à un programme.
$ cat / etc / ld . so . conf
include / etc / ld . so . conf . d /*. conf
/ usr / local / lib
Cependant, au lieu d'ajouter directement le chemin /usr/local/lib dans le chier /etc/ld.so.conf,
comme on vient de le faire, il est préférable d'écrire ce chemin dans un chier d'extension .conf, par exemple
local.conf, qu'il faut placer dans le répertoire /etc/ld.so.conf.d/.
5.4.2 Regénération du cache
Il ne sut pas d'ajouter le chemin ; on doit toujours ensuite regénérer le cache avec la commande :
# ldconfig
Deux options de la commande ldconfig sont à retenir :
-v (verbose) : pour être informé des actions eectuées par ldconfig,
-p (print) : pour lister le contenu du cache.
Remarque 6
Dans tous les cas, les commandes d'administration du système ne peuvent être lancées que par :
le super utilisateur root (l'administrateur du système), ou
un utilisateur ordinaire mais autorisé, au moyen de la commande sudo.
12

Documents pareils