logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:systeme:apt:paquets [22/05/2014 14:47]
smolski [Les .deb]
doc:systeme:apt:paquets [08/10/2017 08:47] (Version actuelle)
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 s'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épendancesAh ! 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. 
doc/systeme/apt/paquets.1400762849.txt.gz · Dernière modification: 22/05/2014 14:47 par smolski

Pied de page des forums

Propulsé par FluxBB