gpt4 book ai didi

docker - 为特定的 ubuntu 版本安装特定版本的 apt 包

转载 作者:行者123 更新时间:2023-12-04 19:11:52 32 4
gpt4 key购买 nike

我想在 docker 容器中安装包 foo 版本 1234。与最新版本相比,我更喜欢它,因为它总是以相同的方式工作。

所以我的 Dockerfile 有这个:

RUN apt-get update && apt-get install -y foo=1234

但基础镜像是 mongodb:4.0.2 ,它在 Ubuntu xenial 上分层。

当我构建镜像时,apt install 失败,因为它找不到该版本。我认为 xenial 不支持该版本。

那么如何在 xenial 上找到最新支持的软件包 foo 版本?如果我运行 apt policy foo,它会显示我正在使用的 ubuntu(仿生)的最新版本,而不是 xenial。

最佳答案

例如,如果涉及的包裹是 rlwrap ,你可以看看网页https://packages.ubuntu.com/xenial/rlwrap

但是,如果您想以适当的方式以编程方式获取此版本信息,您可以依赖 Launchpad API , 附带官方API client implemented as a Python library .

否则可以直接用curl等工具查询API和 jq (解析检索到的 JSON 数据):

$ curl -fsSL "https://api.launchpad.net/1.0/ubuntu/+archive/primary?ws.op=getPublishedSources&source_name=rlwrap&exact_match=true&distro_series=https://api.launchpad.net/1.0/ubuntu/xenial" \
| jq --raw-output ".entries | .[0] | .source_package_version"

→ 0.41-1build1

如本文所述 Askubuntu question ,Debian 也存在类似的 API。

关于docker - 为特定的 ubuntu 版本安装特定版本的 apt 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52531106/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com