2012-06-18 65 views
5

我開始嘗試設置本地rails安裝以進行開發。然而,在我使用apt-get進行安裝後,我學習了有關RVM的知識,因此我刪除了較早的那個,並從RVM重新安裝。但看起來我還有其他問題。具體而言,當我嘗試安裝導軌我得到...RVM gem權限錯誤

$ gem install rails 
ERROR: While executing gem ... (Gem::FilePermissionError) 
    You don't have write permissions into the /var/lib/gems/1.9.1 directory. 

這已經看起來像一個問題,因爲我不希望它是在/ var /目錄下,我希望它是在用戶目錄。所以,我檢查以下...

$ gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.11 
    - RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1 
    - RUBY EXECUTABLE: /usr/bin/ruby1.9.1 
    - EXECUTABLE DIRECTORY: /usr/local/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /var/lib/gems/1.9.1 
    - /home/myusername/.gem/ruby/1.9.1 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

除了sudo'd:

$ sudo gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.11 
    - RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1 
    - RUBY EXECUTABLE: /usr/bin/ruby1.9.1 
    - EXECUTABLE DIRECTORY: /usr/local/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /var/lib/gems/1.9.1 
    - /home/myusername/.gem/ruby/1.9.1 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

寶石似乎生活在/ var/lib中的某些原因。這是正常的嗎?我該如何解決這個問題,以便我可以安裝rails gem?

編輯:更新!

在我看來,我有兩次安裝gems,一次在/var/lib/gems/1.9.91(壞),一次在/home/myusername/.gem/ruby/1.9.1(好) 。

我想這裏發生的事情是,當我輸入「gem」時,/var/lib/gems/1.9.1(bad)中的安裝優先於/home/myusername/.gem/ruby/1.9。 1(好)。任何人都可以證實嗎?另外,它會是好的,並修復只是爲了刪除壞目錄,或者會導致問題?

+0

有人可能需要命令行中的'ls -la/var/lib/gems/1.9.1'來找出目錄上的當前權限。也許''whoami'看到當前用戶。 – buley

+0

權限是755,但我認爲問題在於我寧願在var之外安裝它,對吧? var應該由root擁有。不應該只位於家庭/用戶名目錄嗎? – Mittenchops

回答

7

你錯過了使用Ruby,你可以做到這一點:

rvm use 1.9.3 --install 

在1.9.3的情況下沒有安裝,這個命令也將安裝它!

它也看起來你使用的是Ubuntu,確保你沒有使用Ubuntu軟件包中的RVM--那個東西壞了!你可以在這裏找到如何解決這個問題的指令:https://stackoverflow.com/a/9056395/497756

+0

我還會看看[rvmrc文件](https://rvm.io//workflow/rvmrc/),它可以在遍歷文件系統時自動使用ruby和gemsets版本。 –

+0

我認爲根本沒有研究,最好的開始是在https://rvm.io,它提供了最好的一組信息 - 更新以反映RVM的當前狀態。 – mpapis

+1

'$ rvm use 1.9.3 --install RVM不是一個函數,用'rvm use ...'選擇紅寶石將不起作用。 您需要更改終端設置以允許shell登錄。 請訪問https://rvm.io/workflow/screen/例如.' – Mittenchops