【问题标题】:Issue with creating a gemset via Chef - .ruby-gemset and .ruby-version not getting created通过 Chef 创建 gemset 的问题 - .ruby-gemset 和 .ruby-version 未创建
【发布时间】:2016-12-16 08:25:31
【问题描述】:

我在我的配方中加入了rvm --create --ruby-version ruby-2.3.3@storesview 来创建一个宝石组。运行 kitchen blend 不会创建 .ruby-gemset 和 .ruby-version。但是当我直接在 VM 终端上运行 rvm --create --ruby-version ruby-2.3.3@storesview 时,文件正在被创建。可能是什么原因?谢谢。 这是我的 bash 代码的样子:

bash "somename" do
  user 'root'
  cwd "/var/www/html/APIStoresView/"
  code <<-EOH
    rvm --create --ruby-version ruby-2.3.3@storesview
  EOH
end

【问题讨论】:

  • 仅仅因为你是在一个 ruby​​ 和 gem 路径由 chef ruby​​ 本身修复的环境中运行的?当您在命令行中时,您不是。要么你必须在你的 bash 命令中设置正确的环境变量,要么看看其他的说明书(也许是 rbenv)
  • 抱歉听起来很幼稚,但是我们如何设置环境变量呢? env 变量的值是什么?
  • 用于设置环境值,它在documentation中,值必须在rvm use之后由rvm env给出。但请考虑遵循您在松弛时得到的建议。主要迁移到 poise_ruby 或 rbenv。

标签: ruby chef-infra rvm chef-recipe gemset


【解决方案1】:

一般不鼓励在服务器上使用 rvm,Chef+rvm 在最好的时候是冒险的。更具体地说,appbundler(Chef 使用它来创建稍微防弹的二进制存根)设置了很多环境变量,可能会混淆 rvm。

如果您的项目需要特定版本的 Ruby,我强烈建议您使用 poise-ruby+poise-ruby-build 和 Bundler 而不是 rvm 和 gemsets。

【讨论】:

  • 但是如果我需要在同一台服务器上安装多个版本的 Ruby 和多个 gemset 版本怎么办?
  • 它可以处理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
相关资源
最近更新 更多