Ruby on rails rbenv问题:您的Ruby版本是1.9.3,但您的Gemfile指定了2.2.0

Ruby on rails rbenv问题:您的Ruby版本是1.9.3,但您的Gemfile指定了2.2.0,ruby-on-rails,deployment,unicorn,rbenv,Ruby On Rails,Deployment,Unicorn,Rbenv,我在独角兽启动脚本中设置Ruby版本时遇到问题。在调试模式下运行启动脚本时,我有以下输出 vagrant@vagrant-ubuntu-trusty-64:~$ sudo sh -x /etc/init.d/unicorn start + set -e + USAGE=Usage: /etc/init.d/unicorn <start|stop|restart|upgrade|rotate|force-stop> + USER=vagrant + APP_NAME=my_app +

我在独角兽启动脚本中设置Ruby版本时遇到问题。在调试模式下运行启动脚本时,我有以下输出

vagrant@vagrant-ubuntu-trusty-64:~$ sudo sh -x /etc/init.d/unicorn start
+ set -e
+ USAGE=Usage: /etc/init.d/unicorn <start|stop|restart|upgrade|rotate|force-stop>
+ USER=vagrant
+ APP_NAME=my_app
+ APP_ROOT=/vagrant
+ RAILS_ENV=production
+ export RBENV_ROOT=/home/vagrant/.rbenv
+ export  PATH=/home/vagrant/.rbenv/bin:/home/vagrant/.rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ SET_RUBY=cd /vagrant && rbenv rehash && rbenv local 2.2.0
+ CMD=cd /vagrant && rbenv rehash && rbenv local 2.2.0;bundle exec unicorn -c config/unicorn.rb -E production -D
+ PID=/vagrant/tmp/pids/unicorn.pid
+ OLD_PID=/vagrant/tmp/pids/unicorn.pid.oldbin
+ cd /vagrant
+ sig 0
+ test -s /vagrant/tmp/pids/unicorn.pid
+ echo Starting my_app
Starting my_app
+ su - vagrant -c cd /vagrant && rbenv rehash && rbenv local 2.2.0;bundle exec unicorn -c config/unicorn.rb -E production -D
-su: rbenv: command not found
Your Ruby version is 1.9.3, but your Gemfile specified 2.2.0
vagrant@vagrant-ubuntu-trusty-64:~$sudo sh-x/etc/init.d/unicorn start
+set-e
+用法=用法:/etc/init.d/unicorn
+用户=流浪者
+应用程序名称=我的应用程序
+APP_ROOT=/vagrant
+RAILS_ENV=生产
+导出RBENV_ROOT=/home/vagrant/.RBENV
+导出路径=/home/vagrant/.rbenv/bin:/home/vagrant/.rbenv/bims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
+SET_RUBY=cd/vagrant&&rbenv-rehash&&rbenv-local 2.2.0
+CMD=cd/流浪者和rbenv再培训和rbenv本地2.2.0;bundle exec unicorn-c config/unicorn.rb-E production-D
+PID=/vagrant/tmp/pids/unicorn.PID
+OLD_PID=/vagrant/tmp/pids/unicorn.PID.oldbin
+cd/流浪汉
+sig0
+测试-s/vagrant/tmp/pids/unicorn.pid
+echo启动我的应用程序
正在启动我的应用程序
+su-流浪者-c cd/流浪者和rbenv再培训和rbenv本地2.2.0;bundle exec unicorn-c config/unicorn.rb-E production-D
-su:rbenv:未找到命令
您的Ruby版本是1.9.3,但您的Gemfile指定了2.2.0
我想问题出在
su-vagrant-c…
部分。这最初是
su-$USER-m-c“$CMD”


我怎样才能解决这个问题?谢谢。

gem文件中是否指定了ruby版本?显示gem文件和gemlock文件中的相关内容?是的,在Gemfile中指定为2.2.0,并且在开发环境中运行良好<代码>源代码'https://rubygems.org“ruby”2.2.0“gem”rails、“4.2.0”…我认为您必须在终端会话中将其更改为2.2.0并运行服务器。我可以在终端会话中更改ruby版本并顺利运行服务器。我只是想让它在/etc/init.d/unicorn中运行。我不是Linux爱好者,但我认为问题在于当我使用
su-vagrant$CMD
时,它只是忘记了$PATH和rbenv命令。不幸的是,我在internet上找到的所有示例都使用su命令和rbenv。