如何在apk包中搜索文件

Ant*_*ine 17 package-management alpine-linux apk-tools

我想知道,给定一个二进制文件的名称,我应该在 Alpine Linux 上安装哪个包。

我怎样才能做到这一点?

Fra*_*sta 17

你基本上有三种方式。

首先: 应该安装包,您需要指定完整路径:

apk info --who-owns /path/to/the/file
Run Code Online (Sandbox Code Playgroud)

第二:使用pkgs.alpinelinux.org网站

第三:通过过滤json输出使用api.alpinelinux.org API。为此,您需要一个像 jq 这样的 json 解析器:

apk add jq
Run Code Online (Sandbox Code Playgroud)

然后按照此处提供的说明使用 API

.: 弗朗切斯科

  • `apk info` 似乎更接近于 `dpkg -S`。就我而言,我试图回答“什么包提供了我知道其名称的二进制文件”的问题,而不是这个预先存在的文件来自哪里。 (2认同)

Gil*_*il' 5

您正在apt-file为 Alpine寻找相当于 Debian 的版本。搜索会产生apk-file

基本上是 apt-file 但用于 alpine。

  • 这就是我所追求的。看起来 *apk-file* 不是一个 alpine 包,您可以使用 `go get github.com/jessfraz/apk-file` 安装它(它可以在非 alpine 系统上愉快地运行)。二进制文件可能是静态的,因此可能会被复制到 docker 容器等中。 (2认同)
  • apt-file 基本上解析 pkgs.alpinelinux.org 网站...所以使用我之前写的 JSON 解码会更好,因为不需要臃肿的软件来达到相同的目标。 (2认同)