bundle install - 找不到命令 - 以root身份运行

时间:2014-07-26 09:27:55

标签: ruby amazon-ec2 gem

我正在使用Amazon EC2实例,当我以ec2-user运行bundle install时,它工作正常但是当我尝试与root用户相同时,它会出错。

bash: bundle: command not found

当我为两个用户运行gem list时,存在bundler gem。我以root用户身份安装了ruby-devel ruby​​gems ruby​​-libs。有人可以帮我理解这个问题吗?我已经搜索并阅读了几个小时。

两个用户的回显$ PATH如下。

根: /sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin

EC2用户: /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin

2 个答案:

答案 0 :(得分:4)

我在/usr/local/bin

中将/usr/local/sbin/etc/sudoers添加到secure_path
sudo visudo

然后改变这一行:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

将此更改为

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

说明:

Gems安装在/ usr / local路径而没有在secure_path中添加它,root用户无法从那里运行脚本。您可以通过在shell中运行gem env来检查您的gems路径。

我还有另一个问题。我在Amazon Linux中使用bundle和默认rubygems路径安装了gems作为ec2-user,只为ec2-user安装了它们,我不喜欢这样的东西所以我从源代码安装了ruby和rubygems,它有路径将它们安装在/ usr /下的中心位置本地。我知道它不是很多人推荐的,但我喜欢这种方式。顺便说一句,我试图找到一种方法来改变rubygems路径,但我不能。

答案 1 :(得分:0)

尝试sudo -i -u $USER bundle install

其中$USER是正确的用户名,因此:sudo -i -u root bundle install

如果这不起作用,请考虑尝试the rbenv-sudo plugin