无法使用Ruby 2.0运行Unicorn
在我的ubuntu机器上,我可以在ruby 1.9.3上运行独角兽,但是,它似乎不适用于ruby 2.0。 知道为什么吗?
root@dev:/home/karan# rvm use 1.9 Using /usr/local/rvm/gems/ruby-1.9.3-p429 root@dev:/home/karan# unicorn -v unicorn v4.6.3 root@dev:/home/karan# rvm use 2.0 Using /usr/local/rvm/gems/ruby-2.0.0-p195 root@dev:/home/karan# unicorn -v /usr/local/rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- unicorn/launcher (LoadError) from /usr/local/rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' from /usr/bin/unicorn:3:in `'
尝试使用2.0.0重新安装gem。
这个问题一定是由于1.9.3中安装了gem所引起的。
当我尝试启动Unicorn服务器时,我遇到了完全相同的问题
Starting Unicorn web server unicorn /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- unicorn/launcher (LoadError) from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/bin/unicorn:3:in `'
然而,当我从rails app文件夹运行它时,Unicorn工作正常,只需使用“unicorn”命令。
我已经尝试了你的建议,安装gem独角兽
gem install 'unicorn'
但它并没有改变结果
我检查安装了什么gem:
which gem 'unicorn' /usr/local/rvm/rubies/ruby-2.0.0-p353/bin/gem /usr/local/rvm/gems/ruby-2.0.0-p353/bin/unicorn
我从etc / init.d脚本运行独角兽,你可以在这里看到:
这里是默认配置:
默认配置文件的PATH似乎存在一些问题:
PATH=/usr/local/rvm/rubies/ruby-2.0.0-p353/bin:/home/unicorn/.rvm/bin:/usr/local/sbin:/usr/bin:/bin:/sbin:$
因为我使用新安装的版本更新了它,所以我收到顶部显示的错误消息。 如果我删除它,Unicorn“显然开始”但日志显示一个疯狂的活动,nginx显示一个空屏幕。
我想找到一个解决方案,一旦找到它就会在这里分享。
谢谢你的帮助
*更新*
好的,我发现了问题:
1)对于/etc/init.d脚本:
您需要为Unicorn创建一个包装器,以便在init.d类型的脚本中工作:
rvm wrapper 2.0.0 ruby-2.0.0 unicorn
然后更换线
DAEMON =的/ usr / bin中/麒麟
与这一个:
DAEMON =在/ usr /本地/ RVM /斌/ruby2.0.0_unicorn
现在命令
服务独角兽开始
更多关于rvm包装器: https ://rvm.io/integration/init-d
2)我还有另一个难以在日志中识别的问题:
我没有创建config / environments / staging.rb文件