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)
来自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 - 为什么?.
| 归档时间: |
|
| 查看次数: |
19746 次 |
| 最近记录: |