部署 Mina 部署的 Ruby 默认版本为何被锁定在 2.2.0?

nine · 2015年11月04日 · 最后由 jjfujj 回复于 2016年04月21日 · 2715 次阅读

虚拟机是一个干净的 CentOS 7 rvm 干净安装了 2.2.3

使用 mina 部署时,提示我重新安装已安装过的 gem

进入 shared/bundle/ruby 目录下 赫然停放着一个 2.2.0 的目录

在 current 目录下运行 rails c 也是 2.2.0

可是

find / -name ruby 

什么也没有

这是什么情况?

#1 楼 @huobazi 谢谢 但是没看明白

require 'mina/rvm'
set :rvm_path, '/usr/local/rvm/scripts/rvm'
task :environment do
  invoke :'rvm:use[ruby-2.2.3@default]'
end

都已经做了

运行 mina deploy 也提示

-----> Using RVM environment 'ruby-2.2.3@default'
       Using /usr/local/rvm/gems/ruby-2.2.3

但是依然是 2.2.0

能否详细解释一下原因?

【在 current 目录下运行 rails c 也是 2.2.0】 你 看看你当前用户的 rvm 当前默认设置

#3 楼 @huobazi 只安装了一个版本的 ruby 2.2.3

但是在 current 目录下 rails c 就是 2.2.0 我很奇怪,因为系统根本就没有这个版本的 ruby

之前在另一台机器上做的,就是这个问题,这回单开了一台机器,还是 2.2.0

好奇这个 ruby 是从哪儿来的

不同用户了

#5 楼 @huobazi 应该没有 新开的虚拟机,都是用 root 操作的

Ruby 2.2.x 的 gem 安装目录都是 2.2.0。

#7 楼 @rei 这样啊?

但是运行 rails c 提示我 ruby 版本是 2.2.0 这个是怎么回事呢? 不应该是根据 gem 目录名啊

应该在 deploy.rb 里面做了声明了。

mina 的 bundle 包和系统是分离的。设计者可能是为了保证在多个工程存在于一个系统里面的情况下,特别是使用了不同的一些 gem 版本的时候,不至于冲突。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号