capistrano でデプロイする Ruby アプリケーション (Rails 以外) があります。cd
サーバーの/current
ディレクトリにsshして、コマンドで起動できます
ruby tweet_tracker.rb start
ただし、レベルを上げて実行すると
ruby current/tweet_tracker.rb start
エラーが発生します:
/home/deploy/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- tweetstream (LoadError)
from /home/deploy/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/deploy/dev/tweet_tracker/current/tweet_tracker.rb:4:in `<main>'
これは明らかに、各ディレクトリで異なる ruby バージョンを使用してコマンドを実行しているためです。
を.ruby-version
指定するアプリケーションにファイルがありますruby-1.9.3-p392
。私の capistrano デプロイ スクリプトは指定されset :rvm_ruby_string, '1.9.3-p392'
ており、デプロイ プロセスの一部として実行bundle install
されると、193-p392 の gem がインストールされます。
問題は、アプリケーション ディレクトリの外からアプリケーションを起動しようとすると、デフォルトの Ruby (RVM によって 193 の下位バージョンに設定されている) が使用されることです。
アプリケーションが実行時に指定された Ruby バージョンを確実に使用するようにするにはどうすればよい.ruby-version
ですか?
システム上で他のアプリケーションが実行されているため、RVM のデフォルトの Ruby バージョンを変更したくありません。