在 alpine 上获取已安装软件包的版本有时不会返回任何结果

在 alpine 上获取已安装软件包的版本有时不会返回任何结果

在 Linux Alpine 中,我使用apk version package它来检索软件包的已安装版本。出于某种原因,某些软件包根本没有返回任何结果。还有其他方法可以做到这一点吗,还是我遗漏了什么?

docker run -it --rm alpine:3.15
apk add bash openssh-client

# Installs packages

apk version bash
Installed:                                Available:
bash-5.1.8-r0                           = 5.1.8-r0

apk version openssh-client
Installed:                                Available:

答案1

如果所需的只是人类可读的版本信息,那么仍然可以从 openssh-client 的 apk 中获取,使用方法如下:

~ # apk info openssh-client
openssh-client-default-9.3_p1-r3 description:
OpenBSD's SSH client

openssh-client-default-9.3_p1-r3 webpage:
https://www.openssh.com/portable.html
...

至于apk version,首先apk version any_unrecognised_string返回完全相同的空输出。我认为这是因为 openssh-client 是一个元包,是为方便起见捆绑的其他包的集合。与 build-base 类似,但与 build-base 不同的是,上传者可能尚未提供所有 openssh-client 的元数据。

apk add openssh-client安装 3 个应用程序(可能更多)。可以通过以下方式查看:

~ # apk info | grep openssh*
openssh-client-common
openssh-client-default
openssh-keygen

可以使用其全名查找每个程序的版本信息,例如apk version openssh-client-common。或者通过以下方式查找所有三个程序的版本信息:

~ # apk info | grep openssh* | xargs apk version
Installed:                                Available:
openssh-client-common-9.3_p1-r3         = 9.3_p1-r3
openssh-client-default-9.3_p1-r3        = 9.3_p1-r3
openssh-keygen-9.3_p1-r3                = 9.3_p1-r3

相关内容