Raiders of the lost (debian) package
By Jean-Christophe Dubacq on Sunday 7 February 2010, 23:27 - Geeky things - Permalink
Avez-vous déjà eu un dysfonctionnement d'un programme lié au fait qu'un paquet recommandé, que vous ne jugiez pas utile, avait été enlevé alors qu'il était, en fait, utile ?
Parce que les paquets recommandés sont maintenant installés par défaut en même temps que le paquet demandé, mais pas toujours (il y a une heuristique un peu spéciale pour ne pas tenter de réinstaller tout le temps le même paquet dont vous ne voulez vraiment pas ; pour autant que je le sache, il s'agit de ne pas installer un paquet recommandé s'il aurait dû l'être et qu'il ne l'est pas, tout simplement). Au bout d'un certain temps, ça peut être agréable (nécessaire ?) de faire un inventaire des paquets qui auraient pu être installés mais refusés à un moment donné. De plus, certaines manipulations brutales du gestionnaire de paquets peuvent mettre des paquets sur votre système et qu'il lui manque une vraie dépendance (Depends ou Pre-Depends). Même si aptitude est capable de lister les problèmes for la deuxième question (aptitude search ~i~b est grosso modo la réponse), le premier problème n'admet pas de solutions simples (les recherches avec aptitude ne permettent pas de faire la différence entre un dépendance de A ou B, et une dépendance de A et B).
J'ai donc écrit (toujours en python avec python-apt ≥ 0.7.93, donc dans unstable actuellement) un programme apt-missing.
Seules les dépendances positives ont été envisagées (Pre-Depends, Depends, Recommends, Suggests et aussi si on veut Enhances). Les dépendances négatives ne sont pas encore traitées mais là c'est la présence d'un paquet dépendant dans une clause qui doit déclencher une réaction, pas l'absence de tous les paquets de la clause.
Le programme est hébergé là, et les paquets sont hébergés ici.
Exemples
Lancerapt-missing seul (comme apt-missing --recommends) :
# Package abiword has some Recommends missing:D'ailleurs, j'ai pu ainsi localiser des modules noyaux installés qui recommandaient des noyaux absents, parce que tout simplement ils avaient disparus. J'ai donc pu les effacer.
abiword-docs
# Package defoma has some Recommends missing:
libfont-freetype-perl
# Package doc-debian-fr has some Recommends missing:
developers-reference-fr
maint-guide-fr
apt-howto-fr
# Package dwww has some Recommends missing:
swish++
[...]
# Package xchat has some Recommends missing:
tcl
## "Depends" broken in 0 packages
## "Pre-Depends" broken in 0 packages
## "Recommends" broken in 31 packages
apt-missing -a cherche tous les types de dépendance positifs :
# Package a2ps has some Suggests missing:
html2ps
t1-cyrillic
# Package abiword has some Recommends missing:
abiword-docs
[...]
## "Depends" broken in 0 packages
## "Pre-Depends" broken in 0 packages
## "Recommends" broken in 31 packages
## "Suggests" broken in 377 packages
Options
- -h|--help
- Ce texte d'aide
- -d|--depends
- Depends ou Pre-Depends manquants
- -r|--recommends
- Recommends manquants (par défaut)
- -s|--suggests
- Suggests manquants
- -a|--any
- N'importe quelle dépendance positive (comme ci-dessus)
- -t|--type=string
- Dépendance quelconque (par ex. Enhances)
- -p|--package=string
- Liste de paquets à analyser séparés par un espace (on peut répéter l'option, et si aucune option -p n'est présente, tous les paquets sont analysés)
Comments
Je fais aussi ce genre de recherches sur les Recommends que j'ai décidé de ne pas installer pour voir si le choix est toujours d'actualité ; j'utilise :
aptitude search '~i ~BRecommends'
Merci pour le tuyau. C'est vrai qu'on peut trouver avec aptitude les paquets qui ont une recommandation qui manque, contrairement à ce que j'affirme. On peut même trouver les paquets recommandés qui manquent. La sortie n'est pas tout à fait pareille, mon programme précise la version si demandée et il signale aussi les noms qui ne correspondent pas à un paquet. Je viens d'ailleurs de trouver que doc-debian-fr recommande apt-howto-fr (qui n'existe pas), et kdesdk-scripts recommande svn, qui n'existe pas (j'imagine qu'ils pensaient à subversion).
Bon, donc c'est vrai que ce n'est pas très utile, pour ceux qui savent se servir de
aptitude search '~RBRecommends:~i'. Reste que je préfère ma présentation (qui me montre les associations entre quoi et pour qui).