Le gestionnaire de paquets (introduction)

Le gestionnaire de paquets

 

Quel que soit votre niveau sous Linux, il faut bien garder à l'esprit que dès que vous souhaiterez installer un logiciel sous Linux, il faudra passer autant que possible par le gestionnaire de paquets.

 

Le gestionnaire de paquet est l'interface que vous devriez utiliser autant que possible quand vous souhaitez installer un logiciel (et c'est possible dans la très grande majorité des cas). On ne télécharge donc jamais "à la main" un logiciel d'installation que l'on va lancer ensuite. Tout se fait uniquement via le gestionnaire de paquets (installation, suppression...).

 

Principe

 

La plupart des distributions Linux permettent d'installer très facilement des logiciels grâce à des paquets. Si Linux peut-être vu comme un lego, un paquet serait une de ses briques.

  • Mettre à jour Linux revient à mettre à jour les paquets installés.
  • Installer un logiciel revient à installer un ou plusieurs paquets.
  • Supprimer un logiciel revient à supprimer un ou plusieurs paquets.

Certains logiciels reposent sur des "technologies communes". Il paraît donc naturel quand on installe plusieurs logiciel partageant cette technologie de n'installer cette dernière qu'en un exemplaire. C'est exactement ce qui est fait. Chacun de ses logiciels est empaqueté dans un paquet qui lui est propre et qui dépend du paquet associé à cette technologie. Ainsi, le fait d'installer l'un de ces logiciels provoque l'installation de cette dépendance. Celle-ci reste présente tant qu'elle est utilisée.

 

Qu'est ce qu'un paquet ?

 

Un paquet est une archive qui sera décompressée (éventuellement compilée) au bon endroit  de l'arborescence Linux. Il permet d'installer un logiciel, une librairie, un noyau, des pages de documentations, des thèmes, des traductions d'application... Il existe plusieurs milliers paquets.

 

En plus de contenir les fichiers à décompresser, un paquet peut contenir des scripts exécutés avant/après l'installation/la désinstallation. Ils comportent également une description (de quels paquets ils dépendent, qui les maintient, son numéro version, à quoi ils servent etc...).

 

Sous Debian, les paquets sont des fichiers portant l'extension ".deb". De nombreuses distributions Linux sont basées sur des paquets Debian, en particulier Ubuntu, Xandros, Backtrack... D'autres distributions comme Suse, Mandrake, Fedora, Red Hat utilisent des paquets ".rpm". Ils en existe d'autres, par exemple Gentoo utilise encore un autre système de paquets.

 

Quel est l'intérêt des paquets ?

 

Considérons par exemple un paquet qui permet d'installer Mozilla Firefox (qui s'appelle iceweasel sous Debian) et Mozilla Thunderbird (qui s'appelle icedove sous Debian). Ces deux programmes sont écrits en langage C et utilisent tout deux la librairie GTK. Les paquets iceweasel et icedove dépendent donc tout deux des paquets libc6 et libgtk2.0.0. Installer iceweasel (ou icedove) provoque une installation implicite de libc6 et libgtk2.0.0 s'ils ne sont pas déjà installés.

 

Bien entendu, un utilisateur n'a aucun besoin de prendre ces considérations en compte. On aura juste à dire "je souhaite installer iceweasel" pour que tout le nécessaire soit automatiquement installé en cascade et que le logiciel soit prêt à l'emploi. Ce découpage n'est donc absolument pas pénalisant pour l'utilisateur.

 

Le découpage en paquets est particulièrement judicieux pour les raisons suivantes :

  • une mise à jour de libc6 et de libgtk2.0.0 sera implicitement bénéfique à iceweasel et icedove,
  • tout n'est installé qu'en un et un seul exemplaire, ce qui permet de gagner de la place,
  • grâce à ce découpage, il est très simple de localiser un éventuel "problème" et de réinstaller le strict nécessaire.

Qu'est-ce qu'un miroir ?

 

Un miroir est un site sur lequel sont téléchargés des paquets lorsque le besoin s'en fait sortir. Chaque distribution utilise généralement ses propres miroirs et des paquets qui lui sont propres. Voici par exemple les trois miroirs qu'on utilise sous Debian :

http://ftp.fr.debian.org/debian/
http://security.debian.org/
http://www.debian-multimedia.org

 

Qu'est-ce qu'un dépôt ?

 

Les miroirs publient régulièrement de nouvelles version pour chaque paquet mis à disposition (provoquant ainsi d'un point de vue utilisateur l'apparition de mises à jour).

 

Si vous explorez un miroir avec un navigateur, vous trouverez un dossier pool contenant plusieurs répertoires. Ceux-ci sont associés à chaque dépôt proposé par le miroir.

 

Un dépôt est simplement un répertoire qui contient un jeu de paquets ayant un trait commun. En particulier le dépôt non-free contient les paquets propriétaires. La notion de dépôts est spécifique aux miroirs des distributions basées sur Debian (Ubuntu...) et peut différer d'une distribution à l'autre.


Les dépôts diffèrent entre Debian et Ubuntu. Nous n'allons présenter que les dépôts Debian dans cette section. Si vous utilisez Ubuntu, vous pouvez vous référer à la documentation Ubuntu.

 

Debian repose principalement sur trois dépôts :

  • main : fournit des paquets contenant uniquement des logiciels libres
  • contrib : fournit des paquets contenant des logiciels libres dépendant de logiciels propriétaires
  • non-free: fournit des paquets contenant des logiciels propriétaires
On a (malheureusement) souvent besoin de paquets associés à des logiciels propriétaires, typiquement pour les cartes 3D ou les firmwares de cartes wifi.

 

Pour plus de détails :

http://www.debian.org/doc/manuals/repository-howto/repository-howto

Qu'est ce qu'un gestionnaire de paquets ?

 

Le gestionnaire de paquets est l'outil que l'on va manipuler pour installer, mettre à jour ou supprimer des paquets. Il peut différer d'une distribution à l'autre. Il interroge les miroirs pour récupérer la liste des mises à jour, est capable de résoudre les dépendances à déployer en vue d'installer un paquet, de nettoyer les paquets qui ne sont plus utilisés etc...

 

Le gestionnaire de paquets Debian

Présentation succincte des outils

 

Il existe différents outils pour installer ou désinstaller des paquets sous Debian. Voici les principaux outils du plus proche au moins proche de l'utilisateur :

  1. synaptic (gnome), adept ou kpackagekit (KDE),
  2. aptitude, apt-get,
  3. dpkg
Ces outils manipulent tous des paquets Debian (.deb) (en vue de les installer, de les mettre à jour, ou de les désinstaller).
  • dpkg permet d'installer un paquet. Si cette installation requiert des dépendances non installées, la commande échoue. Il permet également de supprimer ou purger un paquet. Si ce paquet est utilisé par d'autres paquets, la désinstallation échoue. Si la commande dpkg fonctionne, alors celui-ci corrige l'état lié à ce paquet. C'est donc dpkg qui maintient à jour la base d'information relatives au paquet et qui déploie ou retire les fichiers relatifs à un paquet.
  • aptitude et apt-get résolvent en fonction de ce que vous demandez tout le scénario à effectuer pour installer ou désinstaller un paquet. Supposons que vous souhaitiez installer un paquet et que certaines dépendances de ce paquet soient absentes, alors aptitude (ou apt-get) va automatiquement les télécharger et les déployer au préalable (et ceci récursivement). Toutes les contraintes liées à dpkg disparaissent. Le principe est le même en ce qui concerne les désinstallation.
  • synaptic, adept et kpackagekit vous permettent d'avoir une interface graphique pour gérer vos paquets, mais ils ne sont pas indispensables si vous savez utiliser aptitude ou apt-get.

D'autres outils viennent compléter ceux que nous venons de mentionner :

  • apt-cache : il sert principalement à faire des recherches sur les paquets (sur leur nom ou leur description), en particulier pour voir si un paquet est référencé ou non par votre gestionnaire de paquet.
  • apt-file : il sert à chercher à quel paquet appartient un fichier, ou quel paquet pourrait fournir un fichier dont on a besoin.
  • deborphan : il sert à determiner les paquets "orphelins". Ce sont des paquets résiduels qui a priori ne servent plus et qui peuvent être supprimés sans risque.

Opérations sur un paquet

 

Les opérations que l'on réalise généralement sur un paquet sont, en fonction de ses besoins :

  • install : comme son nom l'indique, ceci installe le paquet (de manière générale, un paquet réalise une opération de préinstallation, un décompression des fichiers dans l'arborescence Linux, un paramétrage, et un script de poste installation)
  • remove : ceci désinstalle un paquet, mais conserve l'éventuelle configuration relative à ce paquet qui pourrait être stockée dans /etc.
  • purge : ceci supprime complètement le paquet (configuration dans /etc comprise), comme s'il n'avait jamais été installé. Toutefois les profils utilisateurs ne sont pas altérés. Pour plus de détails, consultez cet article.
  • upgrade : ceci consiste à mettre un jour un paquet.
  • held : dans certain cas, on peut décider de geler un paquet dans une version donné. À moins d'être sûr de ce que vous faites, vous ne devriez jamais geler un paquet et toujours l'utiliser dans sa dernière version.

Lorsqu'on déclenche une opération sur un paquet, cela change son état. Cet état est représenté par une série de lettre que vous verrez via dpkg ou dans aptitude.

 

Pour aller plus loin

 

Vous désirez apprendre à installer, mettre à jour ou désinstallez des logiciels grâce à votre gestionnaire de paquets ? Dans, ce cas, vous pouvez vous référer aux tutoriels suivants :

 

Apprendre à utiliser les outils APT

Corriger les miroirs et les dépôts



L'ensemble des tutoriels Mistra by Mistra est mis à disposition selon les termes de la licence Creative Commons et Paternité - Partage des Conditions Initiales à l'Identique 3.0 Unported. Les autorisations au-delà du champ de cette licence peuvent être obtenues à http://www.mistra.fr/contact-mistra.html.

Prochaines Formations

Promotions sur nos prochaines formations à -30% et -50%

 

Formation Android développement - 7 au 11 Avril - 1000 euros HT

Formation iPhone iPad développement -14 au 18  Avril- 1600 euros HT

Formation nodeJS- 17 et 18 Avril- 900 euros HT

Formation maven -  10 et 11 Avril - 750 euros HT

Formation Xamarin pour iOS et Android - 14 au 18 Avril 1800 euros HT 

 

 Tarif Spécial "demandeur d'emploi" : 50 % de réduction sur nos formations !

Contactez nous pour toute inscription ou information

01 82 52 25 25

Toutes nos promotions ...