我无法启动服务器我的应用程序,因为下面的错误后,使用错误的红宝石版本的独角兽崩溃:因为部署
/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