通过环境variables安装yum pacakge的特定版本或默认为最新版本

我知道你可以像这样使用<package name>-<version>安装一个yum的特定版本:

 yum install docker-engine-1.8.2 

但我试图使用一个环境variables来定制这个,如果它被设置,我们使用该版本,否则我们使用最新的。 是否有某种像“最新”的伪版本号码可以工作?

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

显然,使用“最新”将不起作用,但有什么相同的东西? 通常我会在这里使用一个if条件,但这实际上是Dockerfile中的一行而不是一个shell脚本,所以它的function相当有限。

我发现$ {VAR:+ …}会让你使用“…”,如果var被设置,否则它将是空的。 所以使用$ {VAR:-…}给我什么我要找的:

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

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

 yum install docker-1.8.2 

如果没有设置,它会看起来像

 yum install docker