2011-02-13 55 views
2

我剛剛在新的Ubuntu 10.04服務器上安裝了Ruby Enterprise Edition。我去安裝我的第一顆寶石,並遇到一個我從未見過的奇怪問題。Ruby Enterprise Edition的新安裝 - 「gem」認可但「sudo gem」不是

沒有sudoing,如果我只是輸入'寶石'我得到關於寶石blurb。我可以切換到root並執行gem install gemname或給出gem exe的完整路徑,但是如果我這樣做sudo gem install gemname我得到一個奇怪的錯誤sudo: gem: command not found

如果我在沒有sudo的情況下使用gem install gemname,它告訴我我沒有修改gem文件夾的權限(這很公平)。基本上,當我sudo時,它看起來像是有趣的事情。

我已經添加了Ruby bin路徑到我的PATH變量在我的.bashrc文件,像這樣:

export PATH=/opt/ruby-enterprise-1.8.7-2011.01/bin:$PATH 

然後重新加載的.bashrc與source。任何想法,任何人?

回答

0

嘗試sudo -s然後gem install gemname

長的答案 .bashrc文件僅影響使用bash shell你是在和須藤不知道這件事,因爲須藤不直接看你的.bashrc。你可以使用sudo -s來解決這個問題。您也可以使用sudo -E在運行sudo命令時嘗試保留環境。

使用/ etc/profile來更改PATH而不是.bashrc也可以。

+0

感謝錫人。我試着改變/ etc/profile但是沒有幫助。我需要重新加載嗎?我嘗試退出並再次ssh'ing,但沒有骰子。更改爲root * does *像我說的那樣工作,但我仍然希望能夠直接sudo它。 – 2011-02-15 09:19:08

0

這是使用sudo一個問題,因爲ken.li156提到須藤不保留您的$ PATH變量,在這裏看到更多的信息:sudo changes PATH - why?

配售更新PATH出口在/ etc/profile文件應允許所有用戶(包括通過sudo運行的命令)查看REE bin目錄。

+0

謝謝esfourteen。我從另一個頁面執行了這個解決方案: `mv/usr/bin/sudo/usr/bin/sudo.orig`然後創建一個文件/ usr/bin/sudo,其中包含以下內容:`#!/ bin/bash /usr/bin/sudo.orig env PATH = $ PATH「$ @」`。現在,我可以從我自己的帳戶正常申請。 – 2011-02-15 09:28:16

+0

在bash中使用「alias」命令的方式也不太常見,將它放在你的.bashrc中並且重新記錄會有相同的效果:alias sudo ='sudo env PATH = $ PATH' – esfourteen 2011-02-15 16:07:02

0

試試這個:

gem install sqlite3-ruby 
0

如果你使用RVM,使用rvmsudo gem install gemname