rvm没有在生产服务器上读取.ruby-version

时间:2018-01-27 15:24:59

标签: ruby-on-rails ruby rvm

我有一个rails 5.1 app,这是我的.ruby-version

ruby-2.5.0

这是rvm list

的输出
rvm rubies

   ruby-2.3.1 [ x86_64 ]
=* ruby-2.4.0 [ x86_64 ]
   ruby-2.5.0 [ x86_64 ]

当我cd到“current”(使用Capistrano部署)时,我和我运行以下内容:

RAILS_ENV=production bundle exec ruby --version

我得到了

ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

我认为.ruby-version是触发使用ruby版本的原因。我做错了什么?

2 个答案:

答案 0 :(得分:2)

如果您打算使用2.5..0作为应用程序的默认ruby版本,请在服务器上运行

rvm use --default 2.5.0

它给你2.4.0,因为它设置为默认值,当前ie = *表示它将被使用。

此外,由于您使用capistrano进行部署并使用rvm,因此您应该考虑使用此gem。

https://github.com/capistrano/rvm

答案 1 :(得分:0)

根据文档,您可以显式设置ruby版本,它也可能是您的服务器 - 例如,如果您使用的是nginx,则必须在nginx配置文件中明确说明您的ruby版本的路径 - 但这完全取决于在您的生产配置

https://rvm.io/rubies/default

$ rvm --default use 2.1.1

$ ruby -v

ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin12.0]