如何找到提供文件的包?

如何找到提供文件的包?

这个问题很简单:是否有一些 shell 命令(或 GUI 方法)可供我使用,只要给出我系统上文件的路径,它就能告诉我哪个包将它放在那里?假设该文件确实来自某个包,就是这样。

附加问题:如果该文件未安装在我的系统上怎么办?比如说,有没有一个网站可以让我查找文件并查看哪些软件包(如果有)提供了该文件?

答案1

您可以使用dpkg命令来找出哪个已安装的包拥有某个文件:

man dpkg

-S,--搜索文件名搜索模式...
                  从已安装的包中搜索文件名。

例子:

$ dpkg -S /bin/ls
coreutils: /bin/ls

您可以使用完整路径或仅使用文件名进行搜索。

如果您希望搜索计算机上尚未安装的文件,可以使用Ubuntu 软件包搜索apt-file不同的答案

答案2

apt-file命令可以从命令行为您执行此操作。我经常在从源代码构建软件包时使用它。对于已安装在系统上的软件包提供的文件,apt-cache是另一种选择。

要安装apt-file,请执行以下操作:

sudo apt-get install apt-file

然后,您需要更新它的数据库:

sudo apt-file update

最后,搜索文件:

$ apt-file find kwallet.h
kdelibs5-dev: /usr/include/kwallet.h
libkf5wallet-dev: /usr/include/KF5/KWallet/kwallet.h

然而,更友好的方法是使用Ubuntu 软件包搜索网站。他们有一个选项可以“搜索包的内容”以查找特定的文件名。

答案3

还有 apt-file 用于查找未安装的软件包中的文件。例如:

apt-file list packagename

答案4

您的意思是哪个包,而不是哪个应用程序。应用程序是您的包管理器,例如Software Center

使用dpkg

dpkg -S /usr/lib/tracker/tracker-store
dpkg -S tracker-extract
dpkg -S tracker-miner-fs

例子

% dpkg -S /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store

使用apt-file

apt-file search /usr/lib/tracker/tracker-store

或者也可能:

apt-file search --regex /tracker-extract$
apt-file search --regex /tracker-miner-fs$

例子

% apt-file search /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store

或在线这里,在 部分中Search the contents of packages

在此处输入图片描述

例子

在此处输入图片描述

相关内容