Question assez simple: existe-t-il une commande shell (ou une méthode graphique) que je peux utiliser, étant donné le chemin d'accès à un fichier sur mon système, il me dit quel paquet y est placé? En supposant que le fichier provient en fait d'un package, c'est-à-dire.
Question bonus: que se passe-t-il s'il s'agit d'un fichier qui n'est pas installé sur mon système? Existe-t-il, disons, un site Web qui me permettra de rechercher un fichier et de voir quels paquets, le cas échéant, le fournissent?
package-management
David Z
la source
la source
Provides:
mécanisme. De manière plus détaillée, une commande commemailx
ousendmail
n’est pas incluse en tant que binaire dans n’importe quel paquet; Au lieu de cela, divers paquets installent leurs propres fichiers binaires et en rendent certains disponibles sous un nom "canonique" via/etc/alternatives
. Voir aussi askubuntu.com/questions/366135/…Réponses:
Vous pouvez utiliser la
dpkg
commande pour savoir quel paquet installé possède un fichier:De
man dpkg
:Exemple:
Vous pouvez effectuer une recherche avec un chemin complet ou uniquement avec le nom du fichier.
Si vous souhaitez rechercher des fichiers non encore installés sur votre ordinateur, vous pouvez utiliser l' outil de recherche de paquets Ubuntu.
la source
which
pour trouver le programme:dpkg -S `which firefox`
dlocate
ne peut pas faire le travail, si la base de données de dlocate est obsolète. Vous devez appelersudo update-dlocatedb
pour le mettre à jour.dpkg
le chemin exact ne renvoie rien (par exempledpkg /usr/bin/java
), essayez simplement le nom de l'exécutable (par exempledpkg java
).realpath
pour résoudre des liens symboliques, comme ceci:dpkg -S $(realpath $(which <command>))
.La
apt-file
commande peut le faire pour vous à partir de la ligne de commande. Je l'utilise fréquemment lors de la construction de paquets à partir des sources. Pour les fichiers fournis par les packages déjà installés sur votre système,apt-cache
c'est un autre choix.Pour installer
apt-file
, faites:Ensuite, vous devez mettre à jour sa base de données:
Et, enfin, recherchez le fichier:
Cependant, une manière beaucoup plus conviviale consiste à utiliser le site Web Ubuntu Packages Search . Ils ont une option pour "rechercher le contenu des paquets" pour un nom de fichier spécifique.
la source
apt-file
trouve souvent des faux positifs, c'est-à-dire des paquets qui ne sont pas installés. Bien sûr, cette réponse est excellente pour la "question de bonus".apt-file search <>
est l'analogue le plus proche dednf/yum whatprovides <>
.apt-file find
commeapt-find
il y a longtemps et il est vraiment à portée de main! Btw, les dernières versions nécessitent root pourapt-file update
.Il existe également apt-file pour rechercher des fichiers dans des packages qui ne sont pas installés. Par exemple:
la source
Vous pouvez rechercher le contenu des paquets inclus dans les différentes versions d'Ubuntu sur le site Web de paquets Ubuntu . Regardez sous la rubrique " Rechercher dans le contenu des paquets ".
Par exemple, voici les résultats de la recherche pour libnss3.so dans lucid (10.04):
http://packages.ubuntu.com/search?searchon=contents&keywords=libnss3.so&mode=exactfilename&suite=lucid&arch=any
la source
Vous voulez dire quel paquet et pas quelle application. L'application est votre gestionnaire de paquets, par exemple
Software Center
.Utilisant
dpkg
:Exemple
Utilisant
apt-file
:ou aussi possible:
Exemple
Ou en ligne ici , dans la section
Search the contents of packages
.Exemple
la source
Ceci est une extension de l'excellente réponse d' Alexx Roche . J'ai essayé de modifier cette réponse, mais elle a été rejetée (mais pas par Alexx).
J'essayais de localiser ce qui était installé
which
sur mon système. Après un petit travail que j'ai créé/usr/local/bin/apt-whatprovides
Bien que pour la plupart des choses installées, vous pouvez simplement utiliser:
Pour les choses qui ne sont pas installées, vous pouvez utiliser:
Le
apt-whatprovides
script fonctionne pour les fichiers qui sont et ne sont pas sur votre système. Par exemple, mon système manquait,dig
mais il en étaitping
ainsi:Notez que
Searching for
c'est un chemin complet pourping
(installé) et juste le nom binaire pourdig
non installé. Cela m'a aidé à découvrir que je devais installerdnsutils
sans avoir à rechercher dans https://packages.ubuntu.com/#search_contentsla source
J'essayais de localiser ce qui était installé
which
sur mon système. Après un peu de travail j'ai créé apt-whatprovidesBien que pour la plupart des choses, vous pouvez simplement utiliser
la source
Si vous compilez un logiciel qui contient déjà un paquet Ubuntu, vous pouvez le faire, par exemple
apt-get build-dep $PACKAGENAME
. Cela installera tous les paquets que vous devez compiler$PACKAGENAME
.la source