2012-06-18 68 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