我刚刚在新的Ubuntu 10.04服务器上安装了Ruby Enterprise Edition。我去安装我的第一颗宝石,并遇到了一个我以前从未见过的奇怪问题。
没有sudoing,如果我只输入'gem',我会得到关于gem的模糊信息。我可以切换到root并执行gem install gemname
或给出gem exe的完整路径,但如果我sudo gem install gemname
我得到一个奇怪的错误sudo: gem: command not found
。
如果我在没有sudo的情况下gem install gemname
,它告诉我我没有权限更改gem文件夹(这是公平的)。当我sudo时,看起来好像很有趣。
我已经在我的.bashrc文件中添加了我的PATH变量的Ruby bin路径,如下所示:
export PATH=/opt/ruby-enterprise-1.8.7-2011.01/bin:$PATH
然后用source
重新加载.bashrc。任何想法,任何人?
答案 0 :(得分:0)
尝试sudo -s
,然后gem install gemname
。
长答案
.bashrc文件只影响你所在的bash shell,而sudo不知道它,因为sudo不会直接查看你的.bashrc。您可以使用sudo -s
来解决此问题。您还可以使用sudo -E
在运行sudo命令时尝试保留环境。
使用/ etc / profile更改PATH而不是.bashrc也可以。
答案 1 :(得分:0)
这是sudo的问题,因为ken.li156提到sudo不保留你的$ PATH变量,请点击此处了解更多信息:sudo changes PATH - why?
在/ etc / profile中放置更新的PATH导出应允许所有用户(包括通过sudo运行的命令)查看REE bin目录。
答案 2 :(得分:0)
试试这个:
gem install sqlite3-ruby
答案 3 :(得分:0)
如果您使用的是RVM,请使用rvmsudo gem install gemname
。