问题描述
在Ubuntu 8.04系统上工作时,我经常发现自己缺少程序,手册页或其他文件。有没有一种简单的方法来查找包含给定文件的软件包(无论是否已安装)?也许apt或dpkg有一些晦涩的选择?
最佳办法
apt-file search filename
要么
apt-file search /path/to/file
要安装apt-file
,请使用:
sudo apt-get install apt-file
您需要先更新其数据库,然后才能使用它:
sudo apt-file update
次佳办法
(Debian/Ubuntu) Discover what package a file belongs to:
dpkg -S /usr/bin/ls
‘dpkg -S’ just matches the string you supply it, so just using ‘ls’ as an argument matches any file from any package that has ‘ls’ anywhere in the filename. So usually it’s a good idea to use an absolute path. You can see in the second example that 12 thousand files that are known to dpkg match the bare string ‘ls’.
第三种办法
我一直使用packages.debian.org来完成此任务。它优于apt-file,因为它也可以找到文件名的一部分。它还链接到主要软件包列表,该列表将列出描述,错误等。总而言之,这是一个不错的网站。在命令行上没有那么有用,但是仍然很有用。
为了提高速度,我将网址添加为书签:
http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any
在Firefox中,并添加了”debfind”作为关键字(在书签管理器中单击”more”使其具有高亮显示),因此我只需键入“ debfind”即可。您可以将’suite’从不稳定更改为稳定,也可以根据需要针对其他版本的发行版进行测试。
第四种办法
您也可以使用dlocate。从手册页;
$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.
第五种办法
我发现瓦吉格…
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更新也会更新文件缓存,但我希望可以。
sudo wajig update
sudo apt-file update
(还有“超级牛,复活节”吗?!)