在 Alpine 中安装旧版本的软件包

2024-04-07

最近(9 月 5 日)Alpine Linux 软件包存储库已更新为 postgresql-client 12.4

我在 Dockerfile 中引用版本 12.3 (apk add postgresql-client=~12.3)。现在那个版本是不是不能安装了?

我想按照我的时间和条件进行更新,为什么现在必须强制我更新?我可以添加另一个存储库来使用旧版本吗?

Thanks


不幸的是,Alpine 软件包总是会就地更新到最新版本,而旧版本会被丢弃。这确实可能会很痛苦……

通常,当更新软件包时,它会使用与其兼容的所有 Alpine 发行版本进行更新。例如,postgresql-client被撞到12.4-r0在边缘、v3.12 和 v3.11 上,但在 Alpine v3.10 存储库上您仍然会找到11.9-r0。如果这已经足够了,可以从所需的存储库安装旧版本(只要它持续存在),使用:

apk add postgresql-client=11.9-r0 --repository=http://dl-cdn.alpinelinux.org/alpine/v3.10/main

然而,自从12.3不再存在于官方 Alpine 存储库中,您可以改为依赖外部 Docker 镜像。

幸运的是,postgres https://hub.docker.com/_/postgres官方镜像有版本标签,您可以找到所需的 12.3 版本的 Alpine 镜像:

$ wget -q https://registry.hub.docker.com/v1/repositories/postgres/tags -O - | jq -r '.[].name' | grep 12.3
12.3  
12.3-alpine

因此,您可以使用FROM:postgres:12.3-alpine从中获取所需的版本。

在更困难的情况下,Alpine 软件包版本已更新,并且在其他映像中找不到,唯一的方法可能是从源代码构建。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Alpine 中安装旧版本的软件包 的相关文章

随机推荐