【问题标题】:Install Ruby 2.1.1 / Rails 4.0.4 on CentOS 6.5在 CentOS 6.5 上安装 Ruby 2.1.1 / Rails 4.0.4
【发布时间】:2014-05-18 02:00:12
【问题描述】:

这是我的食谱:

execute "rvm-install" do
  user "root"
  command "curl -sSL https://get.rvm.io | bash -s stable --ruby=2.1.1"
  action :run
end

...通过

%w{ruby-devel rubygems}.each do |pkg|
  package pkg do
    action :install
  end
end

...通过

execute "gem-update-system" do
  user "root"
  command "gem update --system"
  action :run
end

...通过

execute "ruby-1.9.3-install" do
  user "root"
  command "rvm install 1.9.3"
  action :run
end

...失败

 * execute[ruby-1.9.3-install] action run
================================================================================
Error executing action `run` on resource 'execute[ruby-1.9.3-install]'
================================================================================


Errno::ENOENT
-------------
No such file or directory - rvm install 1.9.3

...最终我想这样做

execute "rails-install" do
  user "root"
  command "gem install rails 4.0.4 -V"
  action :run
end

我尝试在我的rvm-install 中传递--rails,但失败得很惨。

希望我能得到一些帮助。

【问题讨论】:

  • RVM 需要的配置比我在您的脚本中看到的要多。你看过chef-rvm吗?
  • 请注意,RVM 已安装,我可以从终端运行命令,只是 Chef 无法执行该命令。我确实尝试过使用 chef-rvm,但我也无法用它做很多事情(很可能是我缺乏经验)。
  • 我目前的工作是提供 RVM 的完整路径:/usr/local/rvm/bin/rvm install 1.9.3

标签: ruby ruby-on-rails-4 rvm chef-infra


【解决方案1】:

默认情况下,Chef 从不加载用户环境,因此在命令运行时 $PATH(或 $HOME)不可用。您可以做的最好的事情是指定要运行的命令的完整路径,如果您需要加载一些环境变量,您可以使用以下命令:

execute "Executing a command with ENV variables" do
  command "/tmp/foo.sh"
  user "MY_USERNAME"
  environment ({ 'HOME' => ::Dir.home('MY_USERNAME'), 'USER' => 'MY_USERNAME', 'FOO' => 'BAR' })
end

见:https://tickets.opscode.com/browse/CHEF-2288

【讨论】:

    【解决方案2】:

    除了@daniel 的回答之外,在包装脚本中获取 RVM 脚本可能会很有用,这样您的整个环境就可以满足要求(例如,.ruby-version.ruby-gemsets 文件被尊重)

    #!/bin/sh
    source $HOME/.rvm/scripts/rvm
    /path/to/my/super/awesome.sh
    

    k

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 2015-09-28
      • 2014-06-04
      • 2015-05-07
      • 2016-08-20
      • 2014-10-27
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多