List of files installed from apt package
Solution 1
Note: in the following commands, a command beginning with 'root#' means it needs to be run as root.
To find which files were installed by a package, use dpkg -L
:
$ dpkg -L $package
apt-file
can tell you which files will be installed by a package before installing it:
root# apt-get install apt-file
root# apt-file update
$ apt-file list $package
Or if you have the package as a .deb
file locally already, you can run dpkg
on it:
$ dpkg --contents $package.deb
To find which package provides a file that is already on your system, use:
$ dpkg -S /path/to/file
To find which package provides a file that is not currently on your system, use apt-file
again:
$ apt-file search /path/to/file
Solution 2
dpkg -S /path/to/file/in/question
As far as I'm concerned, dpkg is the low-level tool that apt-get depends on.
Solution 3
Here is a function that should do it for you without the need to downloading the package to disk.
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
}
Then use apt_list <package name1> [package name 2]
e.g.
apt_list curl wget
As for reverse checking files from packages apt-file would be the best bet.
Solution 4
If you have installed dlocate
, you can use dlocate -L
the same way as dpkg -L
. It works exactly the same in this case, but has a number of other options.
Related videos on Youtube
David Nehme
Updated on September 17, 2022Comments
-
David Nehme over 1 year
How do I get a list of files that were or will-be installed when I apt-get a package? Conversely, can I find what package(s) caused a particular file to be installed?
-
Ciro Santilli Путлер Капут 六四事 about 9 yearsSimilar on SU superuser.com/questions/82923/… on Ubuntu: askubuntu.com/questions/32507/…
-
Admin almost 2 yearsBoth ubuntu and debian have web for this, for example packages.ubuntu.com/focal/amd64/tldr/filelist
-
-
Zoredache over 14 yearsKeep in mind that while this will get you most of what you need it will not give you everything. Several packages create configuration files as part of their setup scripts. These files will not be reported by dpkg.
-
Araejay about 14 yearsYes, dpkg is the command that adds and removes software and files from you mcomputer. apt (incl. Apt-get, aptitude, synaptic, etc.) is the programme that calls dpkg
-
Alecz over 7 years
$ dpkg -L package
not$ dpkg -L $package
putting the $ in front of the package names returns an error -
BJladu4 over 7 yearsThe dollar is meant to be understood as a variable, meaning you need to replace
$package
with the actual name of the package. -
Uwe Geuder about 6 yearsconffiles of a package (if any) are listed by command
dpkg --status $package
. For the reverse operation usegrep $filename /var/lib/dpkg/info/*.conffiles
. -
samshers over 3 yearsbit late Q - - what does
sudo apt-file update
do ?? -
Victor Yarema over 3 years@samshers,
apt-file update
command populates the db whichapt-file
uses for searches. -
confiq over 3 yearswhat if you don't have apt-file?
-
Speeddymon over 2 years@confiq if you don't have apt-file, run
sudo apt-get -y install apt-file
then runsudo apt-file update
. After that you can use the tool as described above. -
linuxgeek over 2 yearsIt can be done with some creative piping from apt-get though, see my answer below :)
-
Admin almost 2 yearsI find
apt-file list $package
the most useful.dpkg -L $package
lists directories. Thanks!