2009-07-22 19:06:32 +0000 2009-07-22 19:06:32 +0000
310
310

Trouver à quel paquet appartient un fichier dans Ubuntu/Debian ?

Il m'arrive fréquemment de ne pas trouver un programme, une page de manuel ou un autre fichier lorsque je travaille sur mon système Ubuntu 8.04. Existe-t-il un moyen simple de rechercher quel paquet contient un fichier donné (qu'il soit déjà installé ou non) ? Peut-être une obscure option pour apt ou dpkg ?

Réponses (8)

416
416
416
2009-07-22 19:13:44 +0000

(Debian/Ubuntu) Découvrez à quel paquet appartient un fichier :

dpkg -S /usr/bin/ls

‘dpkg -S’ correspond à la chaîne de caractères que vous lui fournissez, donc le simple fait d'utiliser ‘ls’ comme argument correspond à n'importe quel fichier de n'importe quel paquet dont le nom de fichier contient ‘ls’. C'est donc généralement une bonne idée d'utiliser un chemin absolu. Vous pouvez voir dans le deuxième exemple que 12 000 fichiers connus pour être dpkg correspondent à la chaîne de caractères nue “ls”.

255
255
255
2009-07-22 19:08:44 +0000
apt-file search filename

ou

apt-file search /path/to/file

Pour installer apt-file , utilisez :

sudo apt-get install apt-file

Vous devrez mettre à jour sa base de données avant de pouvoir l'utiliser :

sudo apt-file update
20
20
20
2009-07-22 20:07:17 +0000

packages.debian.org est ce que j'utilise toujours pour accomplir cette tâche. Il est supérieur au fichier apt-file car il peut également trouver des parties de noms de fichiers. Il est également lié à la liste principale des paquets qui contient les descriptions, les bogues, etc. Tout compte fait, c'est un bon site web. Pas aussi utile en ligne de commande, mais tout de même très utile.

Pour plus de rapidité, j'ai mis l'url dans mes favoris :

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any

dans Firefox, et j'ai ajouté “debfind” comme mot-clé (cliquez sur “more” dans le gestionnaire de signets avec le signet en surbrillance), donc je peux juste taper “debfind ” et ça marchera. Vous pouvez changer le mot “suite” de unstable à stable ou testing si vous le souhaitez, pour d'autres versions de la distribution.

11
11
11
2011-08-08 19:30:27 +0000

Vous pouvez également utiliser dlocate. Depuis la page de manuel ;

$ dlocate [PATTERN]
List all records where either the package name or the filename matches PATTERN.
4
4
4
2013-01-14 02:40:06 +0000

J'ai trouvé Wajig…

wajig whichpackage /path/to/file

par exemple

wajig whichpackage /etc/apt/sources.list

Wajig est un outil pratique en ligne de commande ou en console qui englobe toutes les qualités d'apt-get et de dpkg que vous n'avez jamais voulu apprendre. .

Pour installer wajig, utilisez :

apt-get install wajig

Cette commande “whichpackage” dépend elle-même du fichier apt-file

vous devrez encore mettre à jour sa base de données avant de pouvoir l'utiliser : - Je ne sais pas encore si wajig update whixh fait une mise à jour apt-get met également à jour le cache des fichiers, mais je pense que c'est possible.

sudo wajig update

sudo apt-file update

( et Super Cow, Easter egss ? ! )

2
2
2
2013-10-28 10:40:51 +0000

Comme la réponse de Jamuraa pour Debian, vous pouvez également vous rendre sur http://packages.ubuntu.com/ pour Ubuntu. Vous devrez faire défiler un peu vers le bas pour trouver la boîte de recherche “Rechercher le contenu des paquets” où vous pouvez entrer le chemin d'un fichier.

0
0
0
2014-11-24 09:59:47 +0000

Le paquet command-not-found vous donne des indications sur les commandes potentielles et le nom du paquet debian. Il fonctionne en tapant la commande dans le shell bash et en regardant sa sortie.

Par exemple, si le nom de la commande est connu :

zer@ivy:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed. To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found

et si la commande n'est pas connue, certaines suppositions sont appliquées :

zer@ivy:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
 Command 'lsh' from package 'lsh-client' (main)
 Command 'osh' from package 'omake' (main)
 Command 'ysh' from package 'libyaml-shell-perl' (main)
 Command 'ssh' from package 'openssh-client' (main)
 Command 'vsh' from package 'crystalspace' (main)
 Command 'dsh' from package 'dsh' (main)
 Command 'ash' from package 'ash' (main)
 Command 'msh' from package 'nmh' (main)
 Command 'zssh' from package 'zssh' (main)
 Command 'qsh' from package 'gridengine-client' (main)
 Command 'sh' from package 'dash' (main)
 Command 'bsh' from package 'bsh' (main)
zsh: command not found
0
0
0
2012-12-20 00:33:23 +0000

Essayez de rechercher des fichiers en utilisant http://www.kodkast.com/applications/find-which-package-file-belongs-to

Il s'agit d'une application permettant de rechercher des fichiers qui sont contenus dans différents paquets rpms/linux, et qui est très utile lorsque vous n'avez même pas le rpm installé sur votre machine.