我正在尝试在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
答案 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,源自源代码。