首页 文章

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

提问于
浏览
0

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

所以我的Dockerfile有这个:

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

但基本图像是mongodb:4.0.2,它在Ubuntu xenial上分层 .

当我构建映像时,apt安装失败,因为它找不到该版本 . 我认为xenial不支持该版本 .

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

1 回答

  • 1

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

    但是如果你想以一种正确的方式以编程方式获得这个版本信息,你可以依靠Launchpad API,它随官方API client implemented as a Python library一起提供 .

    否则,您可以使用 curljq 等工具直接查询API(以解析检索到的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 .

相关问题