[Linux] Dépendances et apt

Arthur Pons arthur.pons@::1
Mer 13 Déc 16:15:55 CET 2023


Bonjour tout le monde !

J'apprends un peu comment créer des paquets simplistes avec mkcrapdeb 
(git.unistra.fr/mc/mkcrapdeb) et je me rends compte que je ne comprends 
pas comment fonctionne la gestion des dépendances avec apt.

Pour le contexte prenons un exemple. J'ai un projet nommé tp-ratp qui 
pour fonctionner correctement a besoin des commandes :

   * lowdown
   * rsvg-convert
   * groff avec la macro ms

Je me suis renseigné et j'ai trouvé ces commandes dans les paquets

   * lowdown
   * librsvg2-bin
   * groff

J'aimerais créer un petit paquet de façon à pouvoir partager le projet 
pour que les personnes puissent simplement faire :

apt install tp-ratp.deb

et obtenir tous les paquets nécessaires. Ainsi, pas de mauvaise surprise 
quand elles feront un coup de make ! Je crois y être parvenu avec 
mkcrapdeb, quand je fais l'apt install j'installe bien les trois paquets 
(et leurs dépendances).

Les paquets supplémentaires suivants seront installés :
   groff librsvg2-bin lowdown psutils
Les NOUVEAUX paquets suivants seront installés :
   groff librsvg2-bin lowdown psutils tp-ratp
0 mis à jour, 5 nouvellement installés, 0 à enlever et 1 non mis à jour.

C'est ici que je me pose des questions. j'avais espoir qu'en faisant

apt remove tp-ratp

apt retire toutes les dépendances ajoutées. Après tout mon système 
fonctionnait parfaitement bien sans ces paquets avant. Or, il ne me 
propose de retirer que lowdown.

J'ai appris que l'on pouvait voir de quels paquets dépendaient un paquet 
donné avec par exemple

apt-cache rdepends --installed lowdown
lowdown
Reverse Depends:
   tp-ratp
     lowdown:i386

ce qui fait sens mais pour groff

apt-cache rdepends --installed groff
groff
Reverse Depends:
   tp-ratp
     groff:i386
   man-db
     groff:i386
   groff-base
     groff:i386

Groff est donc nécessaire à groff-base ? Pourtant j'avais groff-base 
mais pas groff. Clairement je crois avoir raté quelque chose. Ce qui me 
perplexe aussi c'est que si j'essaye de retirer lowdown (pareil pour 
librsvg2-bin et groff) à la main apt me fait retirer tp-ratp :

sudo apt remove lowdown
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
   lowdown tp-ratp
0 mis à jour, 0 nouvellement installés, 2 à enlever et 1 non mis à jour.

Un peu comme si c'était tp-ratp qui était nécessaire pour lowdown et pas 
l'inverse. Est-ce que ce comportement est tout à fait normal pour une 
très bonne raison qui m'échappe ?

Est-ce que l'un ou l'une d'entre vous qui comprend vraiment comment tout 
cela fonctionne pour éclairer ma lanterne ? Je suis quelque peu perdu.

Bonne journée ! :)
Arthur


Plus d'informations sur la liste de diffusion linux