我在生产服务器上安装捆绑包时遇到问题。我在DigitalOcean运行Rails和Ubuntu 14.02时有一个新的Droplet。如果我以root身份运行:
bundle install
我收到以下消息,我的应用程序中断,开始获取" Bad Gateway"来自Nginx的错误:
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine.
如果我以rails用户身份运行bundle install:
su rails
bundle install
然后我收到了这个错误:
sh: 1: bundle: not found
我错过了什么?我已经浏览了互联网并尝试了我能找到的所有解决方案,并且无法使其正常运行。
感谢您的帮助,
答案 0 :(得分:2)
看起来Bundler gem是为root用户而不是rails用户安装的。
如果您没有使用像rbenv或rvm这样的ruby版本管理器,请执行:gem install bundler
。
如果你有一个ruby版本管理器,你的rails用户没有 访问它,因为您只为1个用户安装了它。在这种情况下,您的问题不仅仅是无法运行bundler。您可能根本没有为该用户安装rails或ruby。
答案 1 :(得分:1)
Rail on Rails One-Click应用程序上的ruby安装由RVM管理。如果您运行哪个捆绑包,则可以看到二进制文件已安装到:
/usr/local/rvm/gems/ruby-2.1.3/bin/bundle rails用户没有登录shell,因此您需要手动获取文件/etc/profile.d/rvm.sh以访问Ruby安装。
您可以通过运行以下命令为rails用户设置正确的登录shell:
chsh -s / bin / bash rails
这对我有用,它也适合你。感谢
答案 2 :(得分:1)
今天我遇到了这个问题,当我在vps上部署我的网络应用时。
ruby版本管理是RVM,
我尝试安装新的ruby版本2.2.2,但问题出现了
然后尝试安装新的捆绑版本,机器捆绑器是最新的1.12.3
gem uninstall bundler -v 1.12.3
gem install bundler -v 1.11.0
问题必须解决