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