在主厨食谱中,我有一个bash资源,基本上可以下载并安装一个名为革命R的软件,我必须说我是Ruby中的一个菜鸟。
这是我的资源:
bash 'download_revolutionr' do
code <<-EOH
mkdir -p /tmp/RRO-#{rro_version}
wget https://mran.revolutionanalytics.com/install/RRO-#{rro_version}-#{rro_os_platform}-#{rro_os_version}.x86_64.deb -P /tmp/RRO-#{rro_version}
wget https://mran.revolutionanalytics.com/install/RevoMath-#{rro_version}.tar.gz -P /tmp/RRO-#{rro_version}
tar -xzf /tmp/RRO-#{rro_version}/RevoMath-#{rro_version}.tar.gz -C /tmp/RRO-#{rro_version}
EOH
not_if { ::Dir.exists?("/tmp/RR0-" + rro_version) }
end我的想法是,如果/tmp/RRO版本目录中已经有磁盘,则不要下载该软件。因此,我在not_if中添加了Dir.exists条件。但是无论如何都会执行资源(下载软件的一个新的无用副本)。
知道这是怎么回事吗?
发布于 2015-10-09 21:00:26
我建议签出处理远程存档包的方舟食谱。
include_recipe "ark"
ark 'RevoMath' do
url 'https://mran.revolutionanalytics.com/install/RevoMath-1.0.1.tar.gz'
end它将把tar包内容安装到/usr/local/RevoMath-1.0.1目录中。可以重写这些默认值。
https://stackoverflow.com/questions/33041428
复制相似问题