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

时间:2018-09-27 06:52:37

标签: docker ubuntu dockerfile apt

我想在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的最新信息。

1 个答案:

答案 0 :(得分:1)

如果所涉及的软件包为>>> df 0 1 2 3 4 0 1.0 1.0 NaN 1.0 1.0 1 1.0 NaN 1.0 1.0 1.0 2 NaN NaN NaN NaN NaN 3 NaN 1.0 1.0 NaN NaN 4 1.0 NaN NaN 1.0 1.0 >>> df[df[3].notnull()] 0 1 2 3 4 0 1.0 1.0 NaN 1.0 1.0 1 1.0 NaN 1.0 1.0 1.0 4 1.0 NaN NaN 1.0 1.0 ,则只需看一下https://packages.ubuntu.com/xenial/rlwrap网页即可。

但是,如果您希望以适当的方式以编程方式获取此版本信息,则可以依靠Launchpad API官方提供的API client implemented as a Python library

否则,您可以使用rlwrapcurl之类的工具直接查询API(以解析检索到的JSON数据):

jq

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