错误sudo:gem:找不到命令

Kat*_*ate 11 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
Run Code Online (Sandbox Code Playgroud)

nic*_*oga 19

试试没有sudo.您应该只在使用sudoruby的root安装时使用,不推荐使用.


use*_*679 6

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

网上有数百篇关于"sudo:gem:command not found"的报道.在我看过的十几个中,建议的分辨率相当于"确保'宝石'在你的PATH中."

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

宝石 - 帮助

但以下失败:

sudo gem --help

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

sudo echo $ PATH

诀窍是sudo在某些版本的Linux上没有使用$ PATH.这种行为被认为"更安全".(参见 sudo change PATH - 为什么?).

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

我通过这样做来修复它:

alias sudo='sudo env PATH=$PATH'
Run Code Online (Sandbox Code Playgroud)

正如sudo中所建议的那样改变PATH - 为什么?.


小智 5

sudo env PATH=$PATH gem 安装导轨

这个对我有用。