ruby-on-rails – -su:bundle:启动独角兽时找不到命令

我正在关注DigitalOcean的教程(fyi,这是教程,link1,link2),使用unicorn和nginx安装生产就绪轨道应用程序,当我到达安装独角兽的部分时.当我尝试在控制台中键入此内容时:

sudo service unicorn_appname start

我收到此错误:

Starting appname
-su: bundle: command not found

所有用户都可以捆绑.这条消息对我没有意义.有任何想法吗?

最佳答案
我也遵循同一指南并遇到了同样的问题.

init.d / unicorn_appname中的启动脚本被评估为:

su - deploy -c cd /home/deploy/appname && bundle exec unicorn -c config/unicorn.rb -E production -D

启动时的root用户将首先进入rails用户(在本例中为“deploy”),然后使用bundle来启动独角兽. rbenv是单用户,只有’deploy’安装了bundle.如果您遵循指南,则bundle的路径可能存储在.bashrc文件中.但是.bashrc文件不是通过su登录而调用的 – 并且导致bundle未安装错误.

解决方案是在.profile中包含与rbenv相关的路径.这样当root su – 进入’deploy’时,路径就被加载了.

转载注明原文:ruby-on-rails – -su:bundle:启动独角兽时找不到命令 - 代码日志