簡體   English   中英

RVM的權限被拒絕錯誤

[英]Permission denied error with RVM

我搜索過這個問題,找不到相關的類似問題。 如果重復,請耐心等待。

我已經按照RVM網站中的指南安裝RVM並且我已經安裝了rubies:

syed@rails:~$ rvm list

rvm rubies

   ruby-1.8.7-p302 [ i386 ]
=> ruby-1.9.2-p0 [ i386 ]

正如您所看到的,我將ruby-1.9.2設為默認值。

這是我的gem目錄:

syed@rails:~$ rvm gemdir
/home/syed/.rvm/gems/ruby-1.9.2-p0

現在,我試圖安裝rails,我拋出以下錯誤:

syed@rails:~$ gem install rails
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied - /home/syed/.gem/specs

我甚至做了這個,沒有對錯誤產生任何影響:

syed@rails:~$ chown -R syed /home/syed/.rvm/

目前,我的環境看起來像這樣:

syed@rails:~$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i686-linux]
  - INSTALLATION DIRECTORY: /home/syed/.rvm/gems/ruby-1.9.2-p0@rails3
  - RUBY EXECUTABLE: /home/syed/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
  - EXECUTABLE DIRECTORY: /home/syed/.rvm/gems/ruby-1.9.2-p0@rails3/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /home/syed/.rvm/gems/ruby-1.9.2-p0@rails3
     - /home/syed/.rvm/gems/ruby-1.9.2-p0@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

我不明白為什么它試圖將gems安裝到我的系統gem目錄路徑?

我有同樣的問題,我通過執行以下操作解決了這個問題:

sudo mkdir ~/.gem/specs
sudo chmod 777 ~/.gem/specs

似乎RVM試圖創建這個“specs”文件夾,但沒有權限這樣做。

我真的不喜歡接受的答案,它不是適合生產的解決方案。 當你chmod 777你給機器上的任何人訪問完全訪問這些文件夾。

為該項目創建單獨的gemset要好得多,然后確保使用chown來擁有它。

rvm gemset create project
rvm use ruby-1.9.3-p394@project # May not be necessary

在您的gems文件夾中,對於上面的情況“home / syed / .rvm / gems /”,請確保您創建的新gemset由您擁有

cd home/syed/.rvm/gems/ && ls -la 

如果你不擁有它,那么將它chown給你的用戶

sudo chown -R user:rvm gemset

也許嘗試檢查必要文件/目錄的“ chown ”權限,以找到有關錯誤消息的更多信息。

通常我會為不同的應用程序/項目創建gemset,這樣我就不會在幾周/幾個月后在一個地方混合使用數百種不同的寶石。 嘗試這個:

rvm use 1.9.2
rvm gemset create YOURGEMSETNAME
rvm gemset use YOURGEMSETNAME

或者干脆

rvm 1.9.2@YOURGEMSETNAME --create

之后嘗試安裝你的寶石。 如果你想要為ruby 1.9.2的每個gemset顯示寶石,那么切換到全局 gemset並在那里安裝你的寶石:

rvm 1.9.2@global
gem install rails3 # or whatever you wish

我終於解決了這個問題。 事實證明我的防火牆阻止了199.91.171.93。 當我打開訪問權限時,我不再收到Errno::EACCES消息。 我通過使用--verbose診斷出這一點,我可以看到源代碼正在嘗試更新$ HOME / .gem / specs / ruby​​gems.org%80 / quick / Marshal.4.8區域,但不能簡單地因為流量被阻止。

我剛遇到這個問題,想要為后代記錄我的答案。 特定於Ruby的RVM目錄中的所有目錄都歸root所有。 所以我不得不把它們全都打扮出來。

~/.rvm/gems/ruby-1.9.3-p286

drwxr-xr-x  22 root           staff   748 Nov 12 13:34 bin
drwxr-xr-x   2 root           staff    68 Nov 20 14:42 cache
drwxr-xr-x   2 root           staff    68 Nov  1 09:59 doc
drwxr-xr-x  47 root           staff  1598 Nov 12 13:34 gems

我不知道這是否正常但是在將它們全部更改為我的非root用戶之后問題就消失了。

對於那些來自谷歌的人:在Windows上我遇到了這個問題,因為我在我的Program Files目錄中安裝了舊版本的Ruby,新版本的Windows有安全限制。 運行ruby --version以確保它符合預期。

你的路徑是什么樣的? 聽起來你正在獲得gem的系統版本,而不是基於rvm的命令。

暫無
暫無

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

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