187 votes

Liste des fichiers installés à partir du paquet apt

Comment puis-je obtenir une liste des fichiers qui ont été ou seront installés lorsque j'ai apt-get un paquet ? Inversement, puis-je trouver quel(s) paquet(s) a (ont) provoqué l'installation d'un fichier particulier ?

0 votes

0 votes

Ubuntu et debian ont tous deux un site web pour cela, par exemple packages.ubuntu.com/focal/amd64/tldr/filelist

265voto

raphink Points 10967

Note : Dans les commandes suivantes, une commande commençant par 'root#' signifie qu'elle doit être exécutée en tant que root.

Pour savoir quels fichiers ont été installés par un paquet, utilisez dpkg -L :

$ dpkg -L $package

apt-file peut vous indiquer les fichiers qui seront installés par un paquet avant de l'installer :

root# apt-get install apt-file
root# apt-file update
$ apt-file list $package

Ou si vous avez le paquet en tant que .deb en local, vous pouvez exécuter dpkg sur elle :

$ dpkg --contents $package.deb

Pour trouver quel paquet fournit un fichier qui est déjà sur votre système, utilisez :

$ dpkg -S /path/to/file

Pour trouver quel paquet fournit un fichier qui n'est pas actuellement sur votre système, utilisez apt-file encore :

$ apt-file search /path/to/file

13 votes

Gardez à l'esprit que si vous obtiendrez la plupart des éléments dont vous avez besoin, vous n'obtiendrez pas tout. Plusieurs paquets créent des fichiers de configuration dans le cadre de leur scripts d'installation. Ces fichiers ne seront pas signalés par dpkg.

0 votes

$ dpkg -L package pas $ dpkg -L $package mettre le $ devant les noms des paquets renvoie une erreur

2 votes

Le dollar doit être compris comme une variable, ce qui signifie que vous devez remplacer $package avec le nom réel du paquet.

7voto

linuxgeek Points 61

Voici une fonction qui devrait le faire pour vous sans avoir à télécharger le paquet sur le disque.

apt_list () 
{ 
    local packages=("$@");
    for pkg in $(seq 0 1 $((${#packages[@]}-1)));
    do
        echo -e "\n#### ${packages[$pkg]} ####\n";
        apt-get download -o Dir::Cache::archives="./" --print-uris ${packages[$pkg]} | awk -F\' '{print $2}' | xargs -I '{}' curl -skL '{}' | dpkg-deb -c /dev/stdin | perl -ne 's,(:\d\d )[.]/,$1/,g;print';
        echo;
    done
}

Ensuite, utilisez apt_list <package name1> [package name 2]

par exemple apt_list curl wget

Pour ce qui est de la vérification inverse des fichiers des paquets, apt-file est la meilleure solution.

5voto

eliben Points 490
dpkg -S /path/to/file/in/question

En ce qui me concerne, dpkg est l'outil de bas niveau dont dépend apt-get.

0 votes

Oui, dpkg est la commande qui ajoute et supprime les logiciels et les fichiers de votre ordinateur. apt (y compris Apt-get, aptitude, synaptic, etc.) est le programme qui appelle dpkg.

0 votes

Il est possible de le faire avec des tuyaux créatifs d'apt-get, voir ma réponse ci-dessous :)

2voto

Benjamin Ortuzar Points 3585

Si vous avez installé dlocate vous pouvez utiliser dlocate -L de la même manière que dpkg -L . Il fonctionne exactement de la même manière dans ce cas, mais dispose d'un certain nombre d'autres options.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X