在 Ubuntu/Debian 中查找文件属于哪个包?

在 Ubuntu/Debian 中查找文件属于哪个包?

在使用 Ubuntu 8.04 系统时,我经常会发现缺少某个程序、手册页或其他文件。有没有简单的方法可以查找哪个包包含给定文件(无论该文件是否已安装)?也许是 apt 或 dpkg 的一些晦涩选项?

答案1

apt-file search filename

或者

apt-file search /path/to/file


安装apt-file, 使用:

sudo apt-get install apt-file

您需要先更新其数据库才能使用它:

sudo apt-file update

答案2

(Debian/Ubuntu)查看文件属于哪个包

dpkg -S /usr/bin/ls

“dpkg -S” 只匹配您提供的字符串,因此只需使用“ls”作为参数,即可匹配任何软件包中文件名中含有“ls”的文件。因此,通常使用绝对路径是个好主意。您可以在第二个示例中看到,dpkg 已知的 12,000 个文件与纯字符串“ls”匹配。

答案3

软件包信息网是我经常用来完成这项任务的工具。它比 apt-file 更优秀,因为它也能找到文件名的一部分。它还链接到主软件包列表,其中会列出描述、错误等。总而言之,这是一个不错的网站。虽然不如命令行有用,但仍然非常有用。

为了速度,我收藏了以下网址:

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any

在 Firefox 中,并添加了“debfind”作为关键字(单击书签管理器中的“更多”并将其突出显示),这样我只需输入“debfind”即可。如果您愿意,可以将其“套件”从不稳定更改为稳定或测试,以用于其他版本的发行版。

答案4

我找到了 Wajig……

wajig whichpackage /path/to/file 

例如。

wajig whichpackage /etc/apt/sources.list

Wajig 是一个方便的命令行或控制台工具,它包含了您从未想过要了解的所有 apt-get、dpkg 优点。

要安装 wajig,请使用:

apt-get install wajig

该命令 'whichpackage' 本身依赖于 apt-file

您仍然需要先更新其数据库,然后才能使用它: - 我还不知道 wajig update whixh 是否会执行 apt-get update 来更新文件缓存,但我希望它可以。

sudo wajig update

sudo apt-file update

(还有超级牛、复活节彩蛋?!)

相关内容