捆绑安装 - Ubuntu上的Rails

时间:2014-12-18 17:39:33

标签: ruby-on-rails ubuntu nginx ubuntu-14.04 unicorn

我在生产服务器上安装捆绑包时遇到问题。我在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

我错过了什么?我已经浏览了互联网并尝试了我能找到的所有解决方案,并且无法使其正常运行。

感谢您的帮助,

3 个答案:

答案 0 :(得分:2)

看起来Bundler gem是为root用户而不是rails用户安装的。

  1. 如果您没有使用像rbenv或rvm这样的ruby版本管理器,请执行:gem install bundler

  2. 如果你有一个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

问题必须解决