apt-get软件包时,如何获取已安装或将要安装的文件的列表?相反,我可以找到导致特定文件安装的软件包吗?

评论

在SU上的SU superuser.com/questions/82923 / ...上类似:Askubuntu.com/questions/32507/…

#1 楼

注意:在以下命令中,以'root#'开头的命令意味着它需要以root用户身份运行。

要查找软件包安装了哪些文件,请使用dpkg -L

$ dpkg -L $package


apt-file可以在安装之前告诉您软件包将安装哪些文件:

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


或者如果您有软件包已作为本地.deb文件打包,您可以在其上运行dpkg

$ dpkg --contents $package.deb


要查找哪个软件包提供了系统上已经存在的文件,请使用:

$ dpkg -S /path/to/file


要查找哪个软件包提供的文件当前不在您的系统上,请再次使用apt-file

$ apt-file search /path/to/file


评论


请记住,虽然这将为您提供大部分所需的东西,但并不能为您提供一切。一些软件包将配置文件创建为安装脚本的一部分。 dpkg将不会报告这些文件。

– Zoredache
09年12月23日在17:33

美元应被理解为一个变量,这意味着您需要将$ package替换为包的实际名称。

–ℝaphink
17年1月15日23:37



软件包的conffile(如果有)由命令dpkg --status $ package列出。对于反向操作,请使用grep $ filename /var/lib/dpkg/info/*.conffiles。

– Uwe Geuder
18 Mar 8 '18 at 17:38



有点晚Q--sudo apt-file更新做什么?

– Samsers
20年8月21日在10:01

@ samshers,apt-file更新命令填充apt-file用于搜索的数据库。

– Victor Yarema
20-10-28在19:49

#2 楼

dpkg -S /path/to/file/in/question


就我而言,dpkg是apt-get所依赖的低级工具。

评论


是的,dpkg是用于从mcomputer添加和删除软件和文件的命令。 apt(包括Apt-get,aptitude,突触等)是调用dpkg的程序

–Rory
2010年5月9日12:06

#3 楼

如果已安装dlocate,则可以使用与dlocate -L相同的方式来使用dpkg -L。在这种情况下,它的工作原理完全相同,但是还有许多其他选择。