2011-07-05 59 views
0

所以當我試圖運行bundle install時,mysql-2.8.1.gem出現錯誤。我試着做清理命令,但仍然得到相同的錯誤。這是錯誤消息:mysql-2.8.1寶石錯誤

Fetching: mysql-2.8.1.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions into the /usr/local/lib/ruby/gems/1.8 directory.

+1

告訴rubygems安裝在你的主目錄中。它很清楚地表明你或者它開始運行的用戶沒有對這個文件夾的權限... –

+0

我該如何更改權限文件夾。我是唯一的用戶。 – conpill

+0

投票將其移動到超級用戶,因爲它不是一個編程問題。這有助於瞭解你使用的是什麼nix - Ubuntu? –

回答

0

默認情況下,Rubygems會嘗試安裝gem以進行系統範圍的訪問(在系統範圍內的文件夾中),但它有一種模式可讓您將它們安裝在主目錄中的目錄中。

一種選擇是安裝gem系統,需要root權限。在大多數現代Linux發行版中,您可以使用sudo gem install ...來完成此操作。

如果你真的想要在你的主目錄中,你應該知道rubygems沒有被配置爲在你嘗試以普通用戶身份安裝時自動回退到在主目錄中安裝gem。它更喜歡給你一個錯誤信息(你在這裏看到的),除非你明確指出你想在你的主目錄中安裝gem。你可以通過使用gem install --user-install ...

+0

我想出了問題。只需重新安裝mysql。感謝大家 – conpill

2

如上評論指出,這是一個權限問題,因爲它不是一個規劃問題,這將是正確的,將其移動到超級用戶。

但是實際發生的事情是,當您運行軟件包安裝而不使用rvm時,軟件包將嘗試將新捆綁的gem保存到默認的gem目錄中,該目錄通常位於/ usr中的某處。

普通用戶不具有對此目錄的寫入權限。您可以嘗試使用sudo運行相同的命令,即sudo bundle install。這可能會起作用。

我真的建議你使用rvm做這樣的事情,因爲它確實有助於保持你的gemsets清潔,並且你不會遇到這些問題。

+1

根據[bundle-install manpage]中的說明(http:// gembundler.com/man/bundle-install.1.html) –