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

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

我正在考虑一些类似Contents-<arch>.gzDebian 的东西。网络服务也还可以。它存在吗?

简单阐述:例如,我们需要一个名为 的二进制文件exampletool,我们从其他发行版或操作系统中对此非常了解。例如,我们想使用 zypper 来安装它。但zypper只能安装一个包。为了找出我们可以在哪个包中找到所需的exampletool二进制文件,我们实际上需要进行一次搜索,最好是在当前未安装但在存储库中可用的包的文件列表。在 debian 上,包存储库中有一个名为 的索引文件Contents-amd64.gz,我们可以在其中通过单个zgrep命令找到所需的包。我也在为 OpenSUSE 寻找一些类似的单命令解决方案。如果没有,网络服务也可以实现相同的功能。

答案1

要从所有可用包中搜索以查找特定文件,您可以使用选项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已过时,可能不再可用。

答案2

对于未来的谷歌用户:除了 @SailorCire 的精彩解决方案:-),还有一个名为 的工具scout,它几乎能够搜索所有内容,我们可以找到二进制文件的 rpm-s,就像我们可以找到给定 java 类的 jars。

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

scout bin hg

这次搜索的结果是mercurial包:

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

答案3

甚至比@Vicente Bolea晚到派对,但我通过检查文档找到了解决方案zypper se,这是@SailorCire建议的:

zypper search --file-list <filename>

或其简短版本

zypper se -f <filename>

在可用包的文件列表中搜索

答案4

我的第一个镜头总是 cnf 又名命令未找到:

cnf 尖叫

程序“yelp”可以在以下软件包中找到:

  • yelp [ 路径:/usr/bin/yelp,存储库:zypp (openSUSE-Leap-15.4-1) ]
  • yelp [ 路径:/usr/bin/yelp,存储库:zypp (repo-oss) ]

尝试使用以下命令安装: sudo zypper install yelp

要进一步检查可用版本和存储库,请使用 opi(OBS 软件包安装程序 (CLI))来搜索并安装几乎所有可用于 openSUSE 和 SLES 的软件包:

$ opi 尖叫

  1. 喊叫
  2. yelp-xsl
  3. yelp 工具
  4. libyelp0
  5. 叫喊郎
  6. yelp-devel 选择一个数字(0 退出):

1

您已选择包名:yelp

  1. GNOME:STABLE:41 ? | 41.2 | x86_64 选择一个数字(0 表示退出):

选择 1 将首先添加存储库(如果需要),启用它,然后下载并安装软件包。

当有多个版本可供选择时,opi的优势就变得明显了:

$ opi php8

您已选择包名:php8

  1. 开发:语言:php:php82 ? | 8.2.4 | x86_64
  2. 开发:语言:php ? | 17.8.1 | x86_64
  3. 开发:语言:php:php81 ? | 8.1.13 | x86_64
  4. 开发:语言:php:php80 ? | 8.0.28 | x86_64
  5. 主页:13ilya! | 8.2.4 | x86_64
  6. 首页:mmanu84:php8:php82! | 8.2.4 | x86_64
  7. 主页:SCNOPS:php81 !| 8.1.17 | x86_64
  8. 主页:illuusio:php-next! | 17.8.1 | x86_64 选择一个数字(0 退出):

这将允许您在 PHP 8.0.28、8.1.13、8.1.17 和 8.2.4 之间进行选择。请注意,目前还没有稳定的软件包,所有软件包都标记为“开发”或“家庭”。

相关内容