错误sudo:gem:command not found

我试图在CentOS上安装rubyrep,并执行sudo gem install rubyrep ,出现错误sudo: gem: command not found 。 Sudo和Gem都是安装和运行的,只是没有组合起来。

我的设置:

 [rubyrep]# which sudo /usr/bin/sudo [rubyrep]# which gem /usr/local/rvm/rubies/ruby-2.1.2/bin/gem [rubyrep]# which ruby /usr/local/rvm/rubies/ruby-2.1.2/bin/ruby [rubyrep]# $PATH -bash: /usr/local/rvm/gems/ruby-2.1.2/bin:/usr/local/rvm/gems/ruby-2.1.2@global/bin:/usr/local/rvm/rubies/ruby-2.1.2/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin: No such file or directory 

尝试没有sudo 。 你应该只使用sudo如果你做了一个红宝石的根安装,这是不推荐的。

http://web.archive.org/web/20130405074724/http://www.kleinfelter.com/node/188

网上有数百篇关于“sudo:gem:命令未找到”的报道。 我看了十几个,建议的分辨率就是“确保'宝石'在你的路径中”。

是的。 这是在我的路上。 这就是说,下面的作品:

宝石 – 帮助

但以下失败:

sudo宝石 – 帮助

进一步混淆的事情,宝石是在以下路径:

sudo echo $ PATH

诀窍是sudo在某些版本的Linux上不使用$ PATH作为其路径。 这种行为被认为是“更安全”。 (请参阅sudo更改PATH – 为什么? )。

呸! 解决这个问题还是很痛苦的。 您必须将“gem”放入路径中(而不是简单的$ PATH!)您将阅读关于可以传递给sudo的选项,而且当您自己键入命令行时,这是很好的。 当某人的脚本为你调用sudo时,你会被它所使用的命令行卡住。

我通过这样做来修复它:

 alias sudo='sudo env PATH=$PATH' 

正如在sudo中所建议的更改PATH – 为什么? 。

如果有人跑过这个,像我一样,没有sudo是不是一个选项。 你可能想检查你的sudoers的'secure_path'。

如果这不包括你的安装路径/宝石/红宝石(哪个宝石)。 那么你也会得到这个错误。

Fedora 23,从源头上构建。

sudo env PATH = $ PATH gem install rails

这个对我有用。