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

xen*_*ide 150 arch-linux pacman package-management

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

Gil*_*il' 203

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

sudo pacman -Fy
Run Code Online (Sandbox Code Playgroud)

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

pacman -F $filename
Run Code Online (Sandbox Code Playgroud)

如果您正在搜索确切的文件名或完整路径,或者

pacman -Fx $expr
Run Code Online (Sandbox Code Playgroud)

被$expr解释为正则表达式。

既然您知道您正在寻找等效的apt-file,那么您可以在Pacman Rosetta 中查找它。

或者,您可以使用pkgfile。安装它pacman -S pkgfile,然后运行

sudo pkgfile -u
Run Code Online (Sandbox Code Playgroud)

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

pkgfile $filename
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的罗塞塔石碑!我将在 rpm 发行版和 pacman 中使用它。 (2认同)

小智 43

谷歌方式:

site:www.archlinux.org/packages/ bin/filename
Run Code Online (Sandbox Code Playgroud)

如果它在 AUR 中而不是官方包中:

site:aur.archlinux.org/packages/ bin/filename
Run Code Online (Sandbox Code Playgroud)

  • 很好的提示,这似乎产生了很好的结果。我使用以下 URL 在 Chrome 中创建了一个“搜索引擎”:`https://www.google.com/search?q=site%3Awww.archlinux.org%2Fpackages%2F+%s`。 (2认同)

小智 40

来自ArchWiki:

$ pacman -Qo df

这将产生程序的拥有包df(在撰写本文时,这是coreutils)。

-Qo 仅对已安装的软件包及其程序进行操作。

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

  • @Victor 不,该软件包必须已安装在系统上才能查询。 (10认同)
  • 这只告诉你哪个包拥有一个文件,它不会告诉你需要安装什么来获取它。 (8认同)