【问题标题】:How to find packages containing a specific file?如何查找包含特定文件的包?
【发布时间】:2012-09-22 03:20:45
【问题描述】:

我想找出哪些包(如果有)包含特定的文件名。例如,我试图在 64 位机器上编译 32 位程序,而 GCC 抱怨缺少文件“gnu/stubs-32.h”。如何快速找到我应该安装的软件包?

【问题讨论】:

    标签: linux package yum apt


    【解决方案1】:

    如果使用基于 Debian 的发行版,您可以使用 apt-file:

    apt-file search path/to/filename(但要使其正常工作,您必须先填充数据库,以 root 身份运行 apt-file update)

    如果使用基于 RPM 的发行版(Red Hat、Fedora 等),则有等效的 yum provides:yum provides path/to/filename,它支持通配符(例如:yum provides \*/gnu/stubs-32.h)。

    【讨论】:

      【解决方案2】:

      一个快速的google search 也会将您指向一个previous stackoverflow 问题。在那里你会发现你需要 32 位 libc-dev 包 (libc6-dev-i386)。

      【讨论】:

      • 我实际上从那个问题中得到了这个例子,但这个问题的想法是更通用的:给定一个任意文件名,如何找到包含它的包? libc 示例只是为了说明,但我发现查找所有包含对 pthread.h 的引用的包很有用。我做了一个快速的 SO 搜索,但没有找到一个看起来很相似的问题,但如果有,请告诉我,以便我可以关闭它(并找出我原来的搜索中缺少的内容)。
      • 抱歉,@dhekir 已经回答了这个问题。
      • 没问题,这是我第一次使用“问答式问答”,所以也许应该改写更好?欢迎提出任何建议。
      猜你喜欢
      • 2018-01-14
      • 2012-05-22
      • 2018-04-21
      • 1970-01-01
      • 2011-05-04
      • 2014-12-16
      • 2017-07-03
      • 2017-04-21
      • 1970-01-01
      相关资源
      最近更新 更多