我無法啓動服務器我的應用程序,因爲下面的錯誤後,使用錯誤的紅寶石版本的獨角獸崩潰:因爲部署
/home/blabla/.rvm/gems/ruby-2.1.0/bin/ruby/2.1.0/bin/unicorn", "-E", "beta", "-c", "/var/www/testenvir/releases/20141117005244/config/unicorn.rb", "-D", {16=>#<Kgio::UNIXServer:fd 16>}] (in /var/www/testenvir/releases/20141121053734)
/home/blabla/.rvm/gems/[email protected]/gems/bundler-1.6.3/lib/bundler/definition.rb:390:in `validate_ruby!': Your Ruby version is 2.1.0, but your Gemfile specified 2.0.0 (Bundler::RubyVersionMismatch)
錯誤是自descritive,但我不知道如何解決這個問題,因爲我有我的Gemfile腳本:
ruby '2.0.0'
在我Capistrano的部署腳本:
set :rvm_ruby_string, 'ruby-2.0.0-p353'
set :bundle_dir, "/home/blabla/.rvm/gems/ruby-2.0.0-p353/bin"
在我的服務器,我把我的環境變量如下:
rvm use ruby-2.0.0-p353
和env RAILS_ENV的輸出= testenvir捆綁高管紅寶石-v是:
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
我可以通過連接驗證
=* ruby-2.0.0-p353 [ x86_64 ]
ruby-2.1.0 [ x86_64 ]
最後我崩潰命令在試圖推出以下命令眼睛腳本定義:即rvm list
產生新的終端:
bundle exec unicorn -E #{RAILS_ENV} -C#{working_dir}/config/unicorn.rb -D
我證實#{working_directory的}和#{RAILS_ENV}是正確的,所以我想了解硬編碼(作爲第一步驟)中,bundle
和unicorn
的路徑,因爲它們是一個從2.1採取.0而不是2.0.0-p353(我得到的錯誤,在unicorn.log ...),但它沒有工作(墜毀與另一個錯誤...)
我也檢查了$ PATH, $ GEM_HOME,$ GEM_PATH和$ RUBY_VERSION,它們都指向2.0.0-p353版本。事實上,我做了一個printenv,並尋找一個可能的變量,分配給它的ruby-2.1.0,但是我找不到任何變量!
我檢查了我的應用程序的所有文件,但是我在某處分配了ruby-2.1.0,但是我沒有找到任何相關的參考。他們都被設置爲ruby-2.0.0-p353。
我的問題是:
有沒有,我很想念我應該在哪裏指定我想要的紅寶石版本另一個地方?我應該如何在服務器上設置我的ruby版本,而不是我做了什麼?
謝謝!
UPDATE:
rvm current
ruby-2.0.0-p353
rvm gemset list
gemsets for ruby-2.0.0-p353 (found in /home/deployer/.rvm/gems/ruby-2.0.0-p353)
=> (default)
global
請輸出'bundle exec ruby -V' – 2014-11-21 14:31:47
ruby 2.0.0p353(2013-11-22 revision 43784)[x86_64-linux]。我編輯了這個問題來添加這個輸出 – user3442206 2014-11-21 14:36:55
ok然後'bundle exec哪個獨角獸' – 2014-11-21 14:40:38