Gestion des packages et des bibliothèques partagées

Transcription

Gestion des packages et des bibliothèques partagées
Le système d'exploitation Debian GNU/Linux
Master 1, RMSE
2015/2016
TP N◦ 2
Gestion des packages et des bibliothèques partagées
Ce TP a plusieurs objectifs à savoir :
travailler sur la base dpkg des packages déjà installés, d'en installer de nouveaux et d'utiliser APT ;
mettre à jour le système;
gérer les bibliothèques partagées.
1
Le gestionnaire de packages dpkg
1.1 Déterminer le nombre de packages déjà installés
Pour lister tous les packages Debian connus par le système, lancer la commande :
$ dpkg -l
Les lignes commençant par ii correspondent à des packages déjà installés. Pour acher uniquement les
packages déjà installés, donc uniquement les ligne commençant par ii, exécuter la commande :
$ dpkg -l | grep "^ ii "
Pour compter le nombre de ces lignes (donc de packages installés), lancer la commande :
$ dpkg -l | grep "^ ii " | wc -l
Remarque 1
$ au début d'une ligne de commande désigne l'invite de l'interpréteur de commandes bash et il n'est
donc pas à saisir.
La présentation des outils grep et wc et la signication de | seront données dans le prochain support
de cours.
1.2 Lire la description d'un package
Considérons à titre d'exemple le package coreutils. Pour acher la liste de tous les packages dont le
nom contient coreutils, taper la commande :
$ dpkg -l "* coreutils *"
Lancer maintenant la commande :
$ dpkg -l coreutils
Le package est-il installé? Noter sa version et la description (très sommaire).
Pour obtenir les détails d'un package déjà installé, on peut utiliser la commande dpkg-query. Le manuel
de dpkg-query nous renseigne qu'on peut utiliser le paramètre -W et modier le format de sortie avec le
paramètre -f :
$ dpkg - query -W -f = ' $ { Description }\ n ' coreutils
Noter que c'est à partir de ce package qu'ont été installées toutes les commandes de base telles que cat,
, , , , ...
Pour voir toutes les autres options de la commande dpkg-query, consulter son manuel par la commande :
chmod cp ls mkdir
$ man dpkg - query
Lister maintenant tous les chiers qui ont été installés depuis le packages coreutils, en entrant la
commande :
$ dpkg -L coreutils
1
1.3 Supprimer un package
Exécuter la commande :
$ sudo dpkg -r coreutils
On obtient une erreur; lire le message.
1.4 Installer un package
Soit à installer l'outil flex (fast lex ).
1. Télécharger le package flex à l'adresse :
http :// ftp . debian . org / debian / pool / main / f / flex / flex_2 .5.35 -10.1 _i386 . deb
ou à partir de https://debian.sHost.ca
2. Se déplacer vers le répertoire où flex_2.5.35-10.1_i386.deb a été sauvegardé.
3. L'installer avec la commande :
$ sudo dpkg -i flex_2 .5.35 -10.1 _i386 . deb
Comme indiqué dans le support de cours, il n'y a pas de méthode directe pour la mise à jour d'un
package. Si le package est déjà installé le -i va le mettre à jour. C'est à nous de vérier avant, si
celui-ci est déjà installé.
4. Vérier par la commande suivante, que le package a vraiment été installé et que la version concorde :
$ flex -- version
2
L'outil APT
2.1 Conguration des dépôts de packages
Éditer le chier /etc/apt/sources.list, mettre en commentaire (un commentaire est une ligne commençant par #) ou supprimer les lignes déjà présentes, et ajouter les lignes suivantes :
deb http :// ftp . debian . org / debian / wheezy main contrib non - free
deb http :// ftp . debian . org / debian / wheezy - updates main contrib non - free
deb http :// security . debian . org / wheezy / updates main contrib non - free
Les lignes ci-dessus décrivent tous les dépôts de packages binaires, ociellement supportés par Debian
pour sa version Wheezy (7.9).
Remarque 2
Un chier sources.list, contenant ces lignes, peut être récupéré à partir de https://debian.sHost.ca.
2.2 Mise à jour de la base de données locale de APT
Pour mettre à jour la base de données locale de APT (l'ensemble des packages connus avec leurs versions
actuelles), lancer la commande :
$ sudo apt - get update
2.3 Installation d'un package et ses dépendances
Soit à installer le package fpc, le compilateur Pascal libre (ou Free Pascal Compiler ). Lancer la commande :
$ sudo apt - get install fpc
Remarquer que contrairement à dpkg, APT gère les dépendances : il installe fpc ainsi que les dépendances
associées.
2.4 Mise à jour du système
Pour mettre à jour tous les packages installés sur le système, lancer la commande :
$ sudo apt - get upgrade
2
3
Gestion des bibliothèques partagées
1. Déterminer à quelles bibliothèques partagées est lié le programme apt-get :
$ ldd / usr / bin / apt - get
Notons que le programme dépend du chier de bibliothèque /usr/lib/i386-linux-gnu/libapt-pkg.so.4.12
qui est en fait un lien symbolique vers le chier /usr/lib/i386-linux-gnu/libapt-pkg.so.4.12.0
Sous Windows, un lien symbolique est appelé raccourcis.
2. Créer le répertoire /tmp/lib par la commande
$ mkdir / tmp / lib
3. Déplacer /usr/lib/i386-linux-gnu/libapt-pkg.so.4.12.0 dans /tmp/lib/ par la commande
$ sudo mv / usr / lib / i386 - linux - gnu / libapt - pkg . so .4.12.0 / tmp / lib /
de sorte qu'il ne puisse pas être trouvé dans son répertoire /usr/lib/i386-linux-gnu/.
4. Lancer maintenant le programme apt-get, par exemple, par la commande suivante et noter le message
d'erreur.
$ apt - get update
Une partie du code du programme apt-get, contenue dans la bibliothèque partagée libapt-pkg.so.4.12.0
est manquante. Le programme apt-get ne peut donc pas être exécuté.
5. Éditer le chier /etc/ld.so.conf et ajouter la ligne
/ tmp / lib
6. Pour tenir compte de cette nouvelle conguration, régénérer le cache du chargeur dynamique par la
commande
$ sudo ldconfig
7. Relancer le programme apt-get et noter qu'il fonctionne.
$ sudo apt - get update
8. Remettre tout dans l'état initial en procédant comme suit :
(a) Remettre le chier de bibliothèque libapt-pkg.so.4.12.0 dans son répertoire original :
$ sudo mv / tmp / lib / libapt - pkg . so .4.12.0 / usr / lib / i386 - linux - gnu /
(b) Supprimer la ligne
/ tmp / lib
du chier /etc/ld.so.conf
(c) Reconstruire le cache du chargeur dynamique par la commande
$ sudo ldconfig
3