我试图在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
这个对我有用。