Comment savoir de quel paquet Debian provient un fichier?
la source
Comment savoir de quel paquet Debian provient un fichier?
Plusieurs applications de Debian effectuent cette tâche. consultez cette page pour une description. Je vais en mentionner deux, apt-file
et dlocate
.
apt-file
recherche dans son cache interne, vous permettant ainsi de ne pas installer tous les packages que vous souhaitez rechercher. Vous trouverez ci-dessous un guide plus détaillé.
dlocate
est une alternative rapide à dpkg -L
(la commande qui répertorie le contenu du paquet) et, de ce fait, elle ne recherche que les paquets installés. La recherche est effectuée par dlocate -S file.name
.
Vous pouvez aussi rechercher des paquets en ligne en utilisant le serveur packages.debian.org (la section Rechercher dans le contenu des paquets ).
apt-file
C'est une bonne idée de mettre à jour d'abord:
sudo apt-get update
Voir à quoi apt-file
sert:
apt-cache show apt-file
Installez-le:
sudo apt-get install apt-file
Lire des données à partir de référentiels (cela fonctionne aussi sans, sudo
mais crée le cache de l'utilisateur ensuite; sudo
le cache étant à l'échelle du système):
sudo apt-file update
Effectuer une recherche. Dans cet exemple, nous voulons savoir dans quel package xrandr
est exécutable:
apt-file search xrandr
Il répertorie de nombreux paquets avec unxrandr
, lxrandr.mo
ou source_lxrandr.py
. Pas très utile dans notre cas. Recherche plus intelligente:
apt-file search -x /xrandr$
( $
dénote la fin de la ligne). Exemple de sortie:
bash-completion: /usr/share/bash-completion/completions/xrandr
x11-xserver-utils: /usr/bin/xrandr
Le premier résultat ne ressemble pas à un exécutable, le second en est un. Nous pouvons enquêter plus avant. Courir:
apt-cache show x11-xserver-utils
Bingo! C'est le paquet.
Où bash est le nom du paquet.
la source
dpkg-query -S
AND et vous renvoie le mauvais chemin d'installation de packages facultatifs ..Une autre alternative:
Sur mon Ubuntu au moins, les deux semblent être dans le
dpkg
paquet, donc pas de réel avantage pour un particulier ...la source
Les fichiers générés par l'installation ne seront pas trouvés par
dpkg -S
, comme indiqué à l' adresse : https://askubuntu.com/a/667227/52975Par exemple,
/bin/nc
apparaît lorsque vous installez le packagenetcat-openbsd
.Mais sur:
nous obtenons
dpkg-query: no path found matching pattern /bin/nc
.Cela se produit car
/bin/nc
est généré par l'update-alternatives
appel du script postinst qui est exécuté après l'installation.Cela fonctionne comme ceci car une autre version de
/bin/nc
est fournie par lenetcat-traditional
paquet.Je ne pense pas qu'il existe un moyen général de trouver de tels fichiers générés. Dans le cas spécifique de liens symboliques alternatifs, nous pouvons simplement suivre le lien avec
readlink -f
:la source
N'étant pas familier avec Debian, j'ai été déconcerté lorsque j'ai essayé ceci:
Un peu d'enquête et j'ai trouvé le paquet:
la source