无法使用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脚本运行独角兽,你可以在这里看到:

http://pastebin.com/qvwdmRJ2

这里是默认配置:

http://pastebin.com/84FBQjMp

默认配置文件的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文件