Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
doc:systeme:apt:paquets [03/07/2014 00:06] 127.0.0.1 modification externe |
doc:systeme:apt:paquets [08/10/2017 08:46] liberté |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Les paquets Debian ====== | ====== Les paquets Debian ====== | ||
+ | |||
+ | * Objet : Un paquet logiciel, c'est quoi | ||
+ | * Niveau requis : {{tag>débutant avisé}} | ||
+ | * Commentaires : //Indispensable à connaître pour comprendre l'administration d'une Debian.// | ||
+ | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
+ | * Suivi : {{tag>à-compléter}} | ||
+ | * Création par [[user>captnfab]] 23/05/2013 | ||
+ | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=162324#p162324 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, ou améliorations !)) | ||
+ | |||
+ | |||
+ | ===== Définition d'un paquet logiciel ===== | ||
Un **paquet** est un ensemble de fichiers : | Un **paquet** est un ensemble de fichiers : | ||
Ligne 22: | Ligne 33: | ||
Un .deb, c'est une archive au format "ar", qui contient 3 fichiers: un fichier **debian-binary** (indiquant le format du paquet), un fichier **control.tar.gz** (contenant les infos de dépendances, version, description, pré-installation, etc. du paquet), et un fichier **data.tar.gz** (ou **data.tar.bz2**) contenant les fichiers à installer. | Un .deb, c'est une archive au format "ar", qui contient 3 fichiers: un fichier **debian-binary** (indiquant le format du paquet), un fichier **control.tar.gz** (contenant les infos de dépendances, version, description, pré-installation, etc. du paquet), et un fichier **data.tar.gz** (ou **data.tar.bz2**) contenant les fichiers à installer. | ||
- | On peux voir ce que contient un .deb avec la série de commandes suivante : | + | On peut voir ce que contient un .deb avec la série de commandes suivante : |
<code root> | <code root> | ||
mkdir /tmp/prout</code> | mkdir /tmp/prout</code> | ||
Ligne 32: | Ligne 43: | ||
Merci au captnfab pour ce fol instant partagé sur irc dans le chan toujours vivant de #debian-facile((Voir : [[:asso:salon-irc-df | Le salon irc de df]])) | Merci au captnfab pour ce fol instant partagé sur irc dans le chan toujours vivant de #debian-facile((Voir : [[:asso:salon-irc-df | Le salon irc de df]])) | ||
- | ===== Par exemple : ===== | + | ===== Dépendances ===== |
+ | |||
+ | Un paquet Y est une **dépendance** du paquet X si il faut absolument que Y soit installé pour pouvoir faire fonctionner X. | ||
+ | |||
+ | //Illustrons cela par une petite histoire : // | ||
+ | |||
+ | Il était une fois... le mariage d'un logiciel (libre) avec une bibliothèque (libre aussi) dont il va dépendre pour fonctionner : | ||
+ | * Le développeur de ''feh'' (développeur = créateur) veut que son logiciel (un visionneur d'image léger) puisse lire aussi le PNG. | ||
+ | * Un autre développeur a déjà écrit du code sous licence libre permettant de faire cela, le développeur de ''feh'' peut donc l'utiliser avec ''feh''. | ||
+ | * Il indique simplement que ''feh'' a besoin de la ''libpng12-0'' pour fonctionner correctement et le tour est joué. | ||
+ | * La bibliothèque ''libpng12-0'' est ainsi devenue une dépendance de ''feh''. | ||
+ | |||
+ | Il existe plusieurs niveaux de dépendance entre deux paquets Debian X et Y : | ||
+ | * **dépend** : X ne peut être installé que si Y est installé | ||
+ | * **recommande** : l'installation de X recommande l'installation de Y | ||
+ | * **suggère** : l'installation de X suggère l'installation de Y | ||
+ | * **conflit** : X ne peut pas être installé si Y est installé et vice versa | ||
+ | |||
+ | <note>Ces informations peuvent êtres récupérées grâce [[doc:systeme:apt:clients|aux outils apt]] : | ||
+ | <code user>apt-cache show feh</code> | ||
+ | <code config retour de la commande>Package: feh | ||
+ | Version: 2.12-1 | ||
+ | Installed-Size: 343 | ||
+ | Maintainer: Debian PhotoTools Maintainers <pkg-phototools-devel@lists.alioth.debian.org> | ||
+ | Architecture: amd64 | ||
+ | Depends: libc6 (>= 2.15), libcurl3 (>= 7.16.2), libexif12, libimlib2 (>= 1.4.5), libpng12-0 (>= 1.2.13-4), libx11-6, libxinerama1 | ||
+ | Recommends: libjpeg-progs | ||
+ | ...</code> | ||
+ | </note> | ||
+ | |||
+ | Par défaut, ''apt-get'' installe les paquets recommandés mais pas les paquets suggérés. \\ | ||
+ | Donc par défaut l'installation d'un environnement de bureau installera le serveur graphique X.org. | ||
+ | |||
+ | Lorsque dans l'historiette le développeur crée son paquet Debian de ''feh'', il indique que ce dernier a besoin de la ''libpng12-0'' pour fonctionner correctement. \\ | ||
+ | La ''libpng12-0'' est donc, de fait, une dépendance de ''feh'' | ||
+ | |||
+ | Il faut enfin distinguer deux cas : | ||
+ | - les dépendances à la construction et | ||
+ | - les dépendances à l'exécution. | ||
+ | Par exemple, pour un programme écrit en langage C, la construction dépend d'un compilateur C. Mais pas l'exécution. | ||
+ | |||
+ | ===== Bibliothèques ===== | ||
+ | |||
+ | //Quoi, y'a des bouquins dans mon ordi et on ne pas pas prévenu ? 8-o \\ | ||
+ | Non, mais presque ;-)// | ||
+ | |||
+ | Une bibliothèque logicielle est une collection de fonctions, qui peut être déjà compilée et prête à être utilisée par des programmes((Dixit [[https://fr.wikipedia.org/wiki/Biblioth%C3%A8que_logicielle|Wikipedia]])). Les bibliothèques, qu'on trouve sous forme de paquets elles aussi, ne sont pas utilisées seules, mais sont des dépendances d'autres paquets. | ||
+ | |||
+ | <note tip>En Français, on voit souvent utilisé le mot //librairie// à la place de //bibliothèque//. Cela provient d'une erreur de traduction, car en anglais, //bibliothèque// se dit //library//. </note> | ||
+ | |||
+ | Ces bibliothèques vont être liées au programme via l'éditeur de lien. On va distinguer deux types de liaison : | ||
+ | |||
+ | - Liaison **statique** : les fonctions des bibliothèques utilisées par le programme sont incluses dans ce dernier lors de la construction. Il n'a pas besoin des bibliothèques lors de l'exécution. Exemple : busybox-static. \\ //Avantages// : programme indépendant, évite les problèmes d'incompatibilités entre versions d'une même bibliothèque, parfois gain de place quand un programme est le seul à dépendre d'une bibliothèque dont il n'utilise que quelques fonctions (seules ces fonctions sont incluses dans le programme au lieu d'installer la bibliothèque complète). | ||
+ | - Liaison **dynamique** : les fonctions des bibliothèques utilisées par le programme ne sont pas incluses dans ce dernier lors de la construction. Il a besoin de la bibliothèque lors de l'exécution. \\ //Avantages// : gain de place (les fonctions des bibliothèques sont partagées au lieu d'être dupliquées), simplicité de mise à jour (la correction d'un bug d'une bibliothèque ne nécessite pas de mettre à jour tous les programmes qui l'utilisent). | ||
+ | |||
+ | ==== Lien vers le forum ==== | ||
- | Si vous demandez au gestionnaire de paquets d'installer le programme //pommier//, celui-ci va vous dire qu'en plus du paquet //pommier//, les paquets //racines//, //tronc//, //branches//, //feuilles// et //pommes// sont nécessaires à sa bonne exécution. | + | [[https://debian-facile.org/viewtopic.php?pid=162187#p162187 | Donc, les dépendances… Nous disions : dépendances. Ah ! Je sèche !]] |
- | Certains paquets peuvent aussi présenter des incompatibilités entre eux, c'est à dire qu'un paquet //X// ne pourra peut-être pas être installé en même temps que le paquet //Y//, ou encore que ce paquet //X// réclame une version plus récente du paquet //Y//, ce qui peut arriver avec les [[:doc:systeme:apt:pinning | Le PINNING - gérer le sources.list]]. | ||
- | Le gestionnaire de paquets sert aussi à gérer ces problèmes et à éviter de casser son système. |