当前位置: 首页>>技术教程>>正文


在Ubuntu/Debian中找到文件所属的软件包?

, , , ,

问题描述

在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

(还有“超级牛,复活节”吗?!)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10642.html,未经允许,请勿转载。