繁体   English   中英

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

[英]Install specific version of apt package for specific ubuntu version

我想在Docker容器中安装foo版本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的最新信息。

如果所涉及的软件包是rlwrap ,则可以仅查看网页https://packages.ubuntu.com/xenial/rlwrap

但是,如果您希望以适当的方式以编程方式获取此版本信息,则可以依赖Launchpad API ,该API附带有作为Python库实现的正式API客户端

否则,您可以使用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问题中提到的那样 ,Debian也存在类似的API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM