1

私は本当に奇妙な問題を抱えています。私のリモート サーバー (Max OSX サーバー) には、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ただし、 SSH でリモート マシンに接続しているローカル マシンで Capistrano を使用しようとすると、次のエラーでデプロイが失敗します。

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:777:in `report_activate_error': RubyGem バンドラーが見つかりませんでした (>= 0) (Gem::LoadError)

なぜ Ruby 1.8 を使用しているのですか? 代わりに Ruby 1.9.3 を使用するにはどうすればよいですか?

4

3 に答える 3

0

sudo update-alternatives --config gem

正しいバージョンを選択します

于 2014-06-23T10:22:31.553 に答える
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"
}
于 2013-09-18T20:35:54.673 に答える