簡體   English   中英

使用'sudo'而不使用sudo時,RubyGems安裝錯誤

[英]RubyGems installation errors both when using 'sudo' and not using sudo

我有一台運行Ubuntu Hardy的機器,它提供了自己的RubyGems包。 不幸的是,RubyGems(1.1.1)的版本太舊了,無法做任何有用的事情,所以我決定手動將RubyGems更新到當前版本(1.3.6)。 那部分進展順利,如果我做gem -v ,我得到1.3.6這是預期的。 問題是當我嘗試做: sudo gem install rack ,它返回此錯誤:

ERROR:  While executing gem ... (Errno::EACCES)
Permission denied - /home/username/.gem

通常當我以root身份安裝gem時,它知道將它安裝到/usr/lib/ruby/gems ,那為什么要檢查我的主目錄呢? 另一個怪癖是當我做gem install rack (而不是root)時,它說:

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory.

這是我想去的地方。 我已經嘗試清除source_caches,嘗試使用不同版本的RubyGems(1.3.5),強制使用-i安裝到/usr/lib無濟於事。 關於為什么RubyGems在以root身份安裝時如此堅持檢查我的/home目錄的任何想法?

聽起來它可能是一個路徑問題,加上安裝了多個版本。

輸出之間的任何差異:

sudo gem env

gem env

試試跑步:

gem environment

並檢查GEM路徑的值。 更多信息請訪問http://docs.rubygems.org/read/chapter/10#page31

我在Fedora 15上遇到了同樣的問題,所以我使用'--backtrace'選項運行'gem install'以查看發生了什么。

事實證明它在/usr/lib/ruby/site_ruby/1.8/rubygems/doc_manager.rb:203失敗了,它試圖將chdir發送到它之前存儲的目錄(我運行sudo的用戶的主目錄)

我沒有進行廣泛的調試,看看底層原因是什么,只是使用了快速的解決方法,所以我可以繼續前進。 解決方法只是在運行gem install命令之前cd到根目錄,例如cd /

希望這有助於/解決您的問題。

會更容易su(密碼)然后chmod 755 /usr/lib/ruby/gems/1.8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM