我有一個我用capistrano部署的Ruby應用程序(非Rails)。我可以ssh到我的服務器,cd
到/current
目錄並用命令來啓動它切換紅寶石版本以在服務器上運行命令
ruby tweet_tracker.rb start
但是,如果我的CD了水平和運行
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版本,因爲系統上還有其他應用程序在運行。
你可以創建一個腳本來cd到正確的文件夾並啓動應用程序? – 2013-04-24 19:13:50