我有一个非常奇怪的问题。在我的远程服务器(Max OSX Server)上,我通过RVM安装了Ruby 1.9.3。当我输入ruby -v
时,我会
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.3.0]
当我输入which bundle
时,我会
/Users/moby/.rvm/gems/ruby-1.9.3-p448/bin/bundle
如果我在我的Rails项目中bundle install
,它会成功而没有任何错误。
但是,当我在本地计算机上通过cap deploy:cold
尝试Capistrano时,SSH进入远程计算机,部署失败并出现以下错误:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:777:in `report_activate_error':找不到RubyGem bundler(> = 0) (GEM :: LoadError)
为什么使用Ruby 1.8?如何让它使用Ruby 1.9.3呢?
答案 0 :(得分:0)
我能够通过以下方式解决问题:
SSH进入远程服务器,并打印出以下值:
$PATH
$RUBY_VERSION
$GEM_HOME
$GEM_PATH
$BUNDLE_PATH
将以下条目添加到deploy.rb文件中,将每个键的值设置为上面的相应输出:
set :default_environment, {
'PATH' => "/Users/USERNAME/.rvm/gems/ruby-1.9.3-p448/bin:/Users/USERNAME/.rvm/gems/ruby-1.9.3-p448@global/bin:/Users/USERNAME/.rvm/rubies/ruby-1.9.3-p448/bin:/Users/USERNAME/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/Server.app/Contents/ServerRoot/usr/bin:/Applications/Server.app/Contents/ServerRoot/usr/sbin:/usr/local/git/bin",
"RUBY_VERSION" => "ruby 1.9.3",
"GEM_HOME" => "/Users/USERNAME/.rvm/gems/ruby-1.9.3-p448",
"GEM_PATH" => "/Users/USERNAME/.rvm/gems/ruby-1.9.3-p448:/Users/OraServer1Admin/.rvm/gems/ruby-1.9.3-p448@global",
"BUNDLE_PATH" => "/Users/USERNAME/.rvm/gems/ruby-1.9.3-p448/bin/bundle"
}
答案 1 :(得分:0)
这篇文章为您的问题提供了几个有效的解决方案:
答案 2 :(得分:0)
sudo update-alternatives --config gem
并选择正确的版本