首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装配方运行后如何使用厨师和流浪者配置软件

安装配方运行后如何使用厨师和流浪者配置软件
EN

Stack Overflow用户
提问于 2016-06-21 15:36:16
回答 1查看 43关注 0票数 0

谢谢你看这个问题。任何帮助都是非常感谢的。我正在使用游民和厨师提供一个带有GUI的虚拟机。

目标:下载IntelliJ IDE,然后安装它,以便在我登录时对我的用户可用。

cookbook cookbook 'idea', '~> 0.4.0'实现了下载,但是用户必须手动完成客户上的安装。

我有困难,我的定制食谱,以完成配置与厨师。在编写过程中,如果在配置机器之后将其添加到运行列表中,则菜谱就会完成,但由于尚未安装文件而在初始运行中失败。

我尝试在相关块中和整个菜谱中使用only_if方法,但无法使其工作。我还搞砸了subscribe方法,但也无法让它起作用。

我相信这有一个简单的解决方案,但谷歌搜索和试错并没有让我更接近。我希望能为实现这一目标提供任何帮助。谢谢!

当前配方

代码语言:javascript
复制
# Configure IntelliJ Idea.
file '/opt/idea/idea.desktop' do
  content '[Desktop Entry]
      Name=IntelliJ IDEA
      Type=Application
      Exec=idea
      Terminal=false
      Icon=idea
      Comment=Integrated Development Environment
      NoDisplay=false
      Categories=Development;IDE;
      Name[en]=IntelliJ IDEA'
  mode '644'
  owner 'root'
  group 'root'
end

bash 'install idea desktop' do
  code <<-EOH
  cd /opt/idea
  sudo desktop-file-install idea.desktop
  EOH
end

file '/usr/share/pixmaps/idea.png' do
  owner 'root'
  group 'root'
  mode '0644'
  content ::File.open('/opt/idea/bin/idea.png').read
  action :create
end

link '/usr/local/bin/idea' do
  to '/opt/idea/bin/idea.sh'
  link_type :symbolic
end

失败了:包装了整个脚本

代码语言:javascript
复制
 # Configure IntelliJ Idea.
    execute 'configure idea' do
      only_if { ::File.exist?("/opt/idea") }
    continues...
    end

在块中使用only_if

代码语言:javascript
复制
file '/usr/share/pixmaps/idea.png' do
    action :create
    only_if { ::File.exist?('/opt/idea/bin/idea.png') }
    owner 'root'
    group 'root'
    mode '0644'
    content ::File.open('/opt/idea/bin/idea.png').read
  end

  link '/usr/local/bin/idea' do
    to '/opt/idea/bin/idea.sh'
    only_if { ::File.exist?('/opt/idea/bin/idea.sh') }
    link_type :symbolic
  end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-21 18:09:04

您可能想要的是一个惰性的评估属性:

代码语言:javascript
复制
content lazy { ::File.open('/opt/idea/bin/idea.png').read }

这将延迟文件的读取,直到聚合时间,而不是编译时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37948778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档