如何在OpenSuSE中找到提供给定文件的软件包?


11

我在想类似Contents-<arch>.gzDebian的东西。网络服务也还可以。是否存在?

详细说明:例如,我们需要一个名为的二进制文件exampletool,我们从其他发行版或操作系统中都非常了解。我们想例如使用zypper进行安装。但是zypper只能安装软件包。为了找出可以在哪个软件包中找到所需的exampletool二进制文件,我们实际上需要在当前未安装文件列表中但在可用存储库中的文件列表中进行搜索,理想情况下是进行快速索引搜索。在debian上,软件包存储库中有一个名为的索引文件Contents-amd64.gz,在其中我们可以通过一个zgrep命令找到所需的软件包。我也在寻找适用于OpenSUSE的类似的单命令解决方案。如果没有,则Web服务也可以使用相同的功能。

Answers:


7

要从所有可用的软件包中搜索以找到特定的文件,可以使用选项wpse --provides --match-exact作为示例:

zypper se --provides --match-exact hg

您将看到与以下类似的输出:

Loading repository data...
Reading installed packages...

S | Name      | Summary                  | Type   
--+-----------+--------------------------+--------
  | mercurial | Scalable Distributed SCM | package

从那时起,您可以通过标准zypper安装来安装软件包

zypper in mercurial

应当注意,zypper wp它已过时,可能不再可用。


这并不总是可靠的。我不知道为什么,但是诸如之类的文件名zypper search --provides [--match-exact] getenforce却不会返回结果zypper search --provides nslookup
Lester

6

面向未来的Google员工:@SailorCire的绝佳解决方案:-)旁边还有一个名为的工具scout,该工具可以搜索几乎所有内容,我们可以找到二进制文件的rpm-s,就像我们找到的给定java类的jar。

例如,我们可以使用scout的bin命令找出哪个包提供了hg可执行文件:

scout bin hg

该搜索的结果是该mercurial程序包:

 repository      | package   | path     | binary
-----------------+-----------+----------+--------
 zypp (repo-oss) | mercurial | /usr/bin | hg    

您能更详细地介绍一下该scout工具吗?可以给它的“全名或URL”为其代码吗?
SebMa '19

@SebMa可能是从zypper从rpm下载的。可能是在非标准回购中。我记不清了:-(我不再使用SuSE。但是我很有可能会使用,然后我将对其进行检查并解释发现的内容。SuSE可能已经发生了很大变化从那以后
彼得-恢复莫妮卡

在我的Jolla1设备(SailFishOS)上,zypper wp scoutNo matching items found.
SebMa '19

@SebMa谷歌搜索“侦察工具的转速”,我当场发现了这个链接,目前我无能为力。可能您需要从一些非标准存储库中安装它。
peterh-恢复莫妮卡

在您提供的链接上,它说:“ Scout是使用DBus进行通信的Tomboy note或Gnote的接口。” 我不确定这是我们正在寻找的工具。
SebMa '19

1

我正在使用Gecko Linux XFCE。我打开了Yast2并安装了gnome-search-toolgnome-shell-search-provider-nautilus。效果就像,鱼一样。

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.