安装特定版本的 yum 包或通过环境变量默认为最新版本

安装特定版本的 yum 包或通过环境变量默认为最新版本

我知道您可以使用以下命令安装特定版本的 yum 包<package name>-<version>

yum install docker-engine-1.8.2

但是我尝试使用环境变量来自定义它,这样如果设置了,我们就使用该版本,否则就使用最新版本。有没有像“最新”这样的伪版本号可以工作?

yum install docker-engine-${DOCKER_VERSION:-latest}

显然,使用“latest”不起作用,但有等效的东西吗?通常我只会在这里使用 if 条件,但这实际上是 Dockerfile 中的一行,而不是 shell 脚本,因此它的功能相当有限。

答案1

我发现,如果设置了 var,${VAR:+...} 将允许您使用“...”,否则它将为空。因此,将其与 ${VAR:-...} 一起使用可以得到我想要的结果:

 yum install docker${DOCKER_VERSION:+-}${DOCKER_VERSION}

所以如果DOCKER_VERSION将其设置为“1.8.2”将如下所示:

yum install docker-1.8.2

如果没有设置,则显示如下

yum install docker

相关内容