在Arch Linux中,我如何找出要安装的包含文件X的软件包?


92

我正在寻找提供特定二进制文件的软件包,因此可以安装它。我如何搜索以找出哪些软件包提供了此二进制文件?(注意:我知道至少有一种工具可以做到这一点,但是我忘记了它的名字。)


另外,我正在寻找的二进制文件是,/usr/sbin/ipset即使有人不知道问题的答案,是否也想向我提示提供什么软件包的软件包。
xenoterracide 2011年

吉尔斯的答案是正确的。关于ipset,我只能在AUR aur.archlinux.org/packages.php?ID=16553中
jasonwryan 2011年

Answers:


118

从pacman 5.0开始,内置了使用该-F选项搜索数据库的功能。首先更新数据库:

sudo pacman -Fy

然后,你可以看到这包中包含$filename

pacman -Fs $filename

要么

pacman -Fos $path

搜索完整的路径。

由于您知道自己正在寻找相同的产品apt-file,因此可以在Pacman Rosetta中查找它。

另外,您可以使用pkgfile。使用进行安装pacman -S pkgfile,然后运行

sudo pkgfile -u

更新数据库。要查看软件包包含的内容$filename,请运行

pkgfile $filename

1
感谢罗塞塔石碑!我将其用于rpm发行版以及pacman。
jpaugh

3
值得注意的是pacman -Fs,如果要搜索完整路径use,请按基本名称搜索pacman -Fos。示例:不pacman -Fs /usr/bin/mount.cifs返回任何内容,pacman -Fs mount.cifs正确返回cifs-utils的情况pacman -Fos /usr/bin/mount.cifs
开发人员

27

谷歌的方式:

site:www.archlinux.org/packages/ bin/filename

并且如果它在AUR中而不是官方软件包中:

site:aur.archlinux.org/packages/ bin/filename

一点也不差。
ychaouche 2015年

大提示,这似乎产生了很好的效果。我使用以下URL在Chrome中创建了“搜索引擎” https://www.google.com/search?q=site%3Awww.archlinux.org%2Fpackages%2F+%s
Borek Bernard '18

22

ArchWiki

$ pacman -Qo df

这将产生该程序的拥有程序包df(在编写本文时为coreutils)。

-Qo 仅对已安装的软件包及其程序起作用。

您可以在查询包数据库中看到更多参数。


4
这只会告诉您什么软件包拥有文件,而不会告诉您需要安装什么文件才能获取文件。
David C. Bishop

@ DavidC.Bishop那不是完全一样的东西吗?
维克多

6
@Victor否,该软件包必须已经安装在系统上才能查询。
戴维·C·毕晓普

@ DavidC.Bishop啊,我明白了,您的意思是“ 安装的软件包拥有文件”。谢谢!
维克多

1
请编辑您的帖子以反映评论中讨论的内容。
Pompei2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.