0

次の Capistrano スニペットがあります。

namespace :bundle do
    task :install do
        run "gem list && bundle -v"
    end
end

私が走るとき

cap bundle:install

次の出力が得られます。

 ** [out :: ....compute-1.amazonaws.com]
 ** [out :: ....compute-1.amazonaws.com] *** LOCAL GEMS ***
 ** [out :: ....compute-1.amazonaws.com]
 ** [out :: ....compute-1.amazonaws.com]
 ** [out :: ....compute-1.amazonaws.com] bundler (1.3.4)
 ** [out :: ....compute-1.amazonaws.com] rake (10.0.3)
 ** [out :: ....compute-1.amazonaws.com] rubygems-bundler (1.1.1)
 ** [out :: ....compute-1.amazonaws.com] rvm (1.11.3.6)
 ** [out :: ....compute-1.amazonaws.com]
 ** [out :: ....compute-1.amazonaws.com] ERROR: Gem bundler is not installed, run `gem install bundler` first.

gem は bundler がインストールされていることを示していますが、bundle -v を実行しようとすると、インストールされていないという矛盾するエラーが表示されます。なぜだか分からない?

私が試したもう1つのことは、ターミナル経由でサーバーにログインすることでした。そこでbundle -vを実行すると、正常に動作しますか?

何が問題なのですか?

4

2 に答える 2

0

rvm-capistrano gemを使用していますか? RVM をロードします。

于 2013-03-16T02:54:17.380 に答える
0

いくつかの環境変数を追加することで、スクリプトを機能させることができました。

set :default_environment, {
    :PATH => "/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@my_gemset/bin:" +
        "/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@global/bin:" +
        "/home/ubuntu/.rvm/rubies/ruby-1.9.2-p320/bin:" +
        "/home/ubuntu/.rvm/bin:" +
        "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
    :RUBY_VERSION => 'ruby-1.9.2-p320',
    :GEM_HOME => '/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@my_gemset',
    :GEM_PATH => '/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@my_gemset:/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@global'
}
于 2013-03-18T15:53:17.033 に答える