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 →
Un paquet est un ensemble de fichiers :
Un programme est constitué d'un ou plusieurs paquets qui sont liés entre eux, c'est-à-dire qu'un paquet peut nécessiter l'installation d'un autre paquet pour pouvoir fonctionner : c'est le système des dépendances.
Tous ces fichiers sont regroupés au sein d'un paquet donc (ou une archive), dans un format propre à Debian sous l'extension : .deb
Dans les faits, chacun des “.deb” fait appel à la lib apt, qui, utilisant les listes des paquets (stockée dans /var/lib/apt/lists/) des différents dépôts (renseignés dans /etc/apt/sources.list{,.d/*}) va récupérer les paquets demandés et leurs dépendances depuis ces dépôts pour les recopier dans le cache apt (/var/cache/apt/archives), d'où ils seront installés grâce à dpkg.
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 peut voir ce que contient un .deb avec la série de commandes suivante :
mkdir /tmp/prout
ar xv /mon/paquet.deb /tmp/prout
ls /tmp/prout
Merci au captnfab pour ce fol instant partagé sur irc dans le chan toujours vivant de #debian-facile2)
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 :
feh
(développeur = créateur) veut que son logiciel (un visionneur d'image léger) puisse lire aussi le PNG.feh
peut donc l'utiliser avec feh
.feh
a besoin de la libpng12-0
pour fonctionner correctement et le tour est joué.libpng12-0
est ainsi devenue une dépendance de feh
.Il existe plusieurs niveaux de dépendance entre deux paquets Debian X et Y :
apt-cache show feh
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 ...
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 :
Par exemple, pour un programme écrit en langage C, la construction dépend d'un compilateur C. Mais pas l'exécution.
Quoi, y'a des bouquins dans mon ordi et on ne pas pas prévenu ?
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 programmes3). 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.
Ces bibliothèques vont être liées au programme via l'éditeur de lien. On va distinguer deux types de liaison :