[英]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客户端 。
否则,您可以使用curl
和jq
等工具直接查询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.