错误sudo:gem:找不到命令

时间:2014-07-11 20:45:33

标签: ruby linux gem sudo

我正在尝试在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

3 个答案:

答案 0 :(得分:18)

尝试不使用sudo。如果您进行了ruby的root安装,则只应使用sudo

答案 1 :(得分:6)

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

  

网上有数百篇关于“sudo:gem:command not   发现了。“我看了十几个,建议的解决方案   相当于“确保'宝石'在你的PATH中。”

     

是的。它在我的道路上。也就是说,以下工作:

     

gem --help

     

但是以下失败:

     

sudo gem --help

     

进一步令人困惑的事情,宝石在显示的路径中:

     

sudo echo $ PATH

     

诀窍是sudo在某些版本上不使用$ PATH作为其路径   Linux。这种行为被认为“更安全”。 (看到   sudo changes PATH - why?)。

     

呸!解决问题仍然是一种痛苦。你必须得到'宝石'   路径(不仅仅是$ PATH!)你会读到你可以选择的选项   传递给sudo,当你输入时,这很好,很花哨   命令行自己。当某人的脚本为你调用sudo时,   你被它使用的命令行困住了。

我通过这样做来修复它:

alias sudo='sudo env PATH=$PATH'

,如sudo changes PATH - why?中所述。

答案 2 :(得分:1)

如果有人碰到这个,就像我一样,没有sudo就不是一个选择。你可能想检查你的sudoers'secure_path'。

如果这不包括你的安装路径/ gem / ruby​​(哪个gem)。然后你也会得到这个错误。

Fedora 23,源自源代码。