Trouver à quel paquet appartient un fichier

Décembre 2016

Il peut arriver, par exemple quand on compile, que le système nous réclame un fichier précis.
Problème: Comment savoir dans quel paquet est disponible ce fichier ?

Ça peut se résoudre de trois façons :


Méthode 1 : dpkg


dpkg est l'outil "bas niveau" sous debian qui permet de manipuler un paquet (installation, suppression, purge...) par dessus lequel se greffent d'autres outils tels qu'apt-get, aptitude (auxquels se superpose une éventuelle couche supplémentaire comme adept ou synaptic).

Mais dpkg permet aussi d'examiner le contenu des paquets debian (c'est notamment ce qui lui permet de vérifier que deux paquets ne sont pas conflictuels). Ainsi la commande :
dpkg -S fstab

permet de trouver les paquets qui installent un fichier contenant le motif "fstab" :
libc6-dev: /usr/include/fstab.h
util-linux: /usr/share/doc/util-linux/examples/fstab.example2
udev: /usr/lib/udev/migrate-fstab-to-uuid.sh
mount: /usr/share/man/man5/fstab.5.gz
mount: /usr/share/doc/mount/examples/fstab
vim-runtime: /usr/share/vim/vim71/syntax/fstab.vim
kdelibs-data: /usr/share/apps/katepart/syntax/fstab.xml

Méthode 2 : apt-file


Faites:
sudo apt-get install apt-file
sudo apt-file update

et vous pouvez maintenant chercher.

Exemple: Dans quel paquet se trouve xmlres.h ?
toto@ubuntu:~$ apt-file search xmlres.h
libwxgtk2.4-contrib-dev: usr/include/wx/xrc/xmlres.h
wx2.6-headers: usr/include/wx-2.6/wx/xrc/xmlres.h
wx2.8-headers: usr/include/wx-2.8/wx/xrc/xmlres.h


Vous pouvez également lister les fichiers contenus dans un paquet, même si ce paquet n'est pas installé:
toto@ubuntu:~$ apt-file list fail2ban
fail2ban: etc/default/fail2ban
fail2ban: etc/fail2ban/action.d/hostsdeny.conf
fail2ban: etc/fail2ban/action.d/ipfw.conf
fail2ban: etc/fail2ban/action.d/iptables.conf
fail2ban: etc/fail2ban/action.d/iptables-multiport.conf
fail2ban: etc/fail2ban/action.d/iptables-new.conf
fail2ban: etc/fail2ban/action.d/mail.conf
fail2ban: etc/fail2ban/action.d/mail-whois.conf
fail2ban: etc/fail2ban/action.d/mail-whois-lines.conf
fail2ban: etc/fail2ban/action.d/shorewall.conf
fail2ban: etc/fail2ban/fail2ban.conf
fail2ban: etc/fail2ban/filter.d/apache-auth.conf
fail2ban: etc/fail2ban/filter.d/apache-noscript.conf
fail2ban: etc/fail2ban/filter.d/courierlogin.conf
fail2ban: etc/fail2ban/filter.d/couriersmtp.conf
fail2ban: etc/fail2ban/filter.d/postfix.conf
fail2ban: etc/fail2ban/filter.d/proftpd.conf
fail2ban: etc/fail2ban/filter.d/qmail.conf
fail2ban: etc/fail2ban/filter.d/sasl.conf
fail2ban: etc/fail2ban/filter.d/sshd.conf
fail2ban: etc/fail2ban/filter.d/vsftpd.conf
[...]

Méthode 3 : Sites dédiés


Si le PC en question est connecté à Internet, vous pouvez également utiliser ces moteurs de recherche pour le même résultat:

L'avantage de cette dernière méthode et qu'elle permet de faire une recherche sans avoir installé la distribution ou pour d'autres versions.

A voir également :

Ce document intitulé «  Trouver à quel paquet appartient un fichier  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.