【问题标题】:Why do "gem" and "sudo gem" have different installation directories?为什么“gem”和“sudo gem”有不同的安装目录?
【发布时间】:2012-01-30 14:36:13
【问题描述】:

我记得我用gem install rails 安装Rails,但今天我想安装另一个gem,输入

gem install ruby-recaptcha

它失败了,说:

您没有写入权限...

然后我发现我的gem environmentsudo gem environment有不同的结果:

对于gem environment

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.15
  - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.0.1]
  - INSTALLATION DIRECTORY: /Users/hx/.rvm/gems/ruby-1.9.2-p290
  - RUBY EXECUTABLE: /Users/hx/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/hx/.rvm/gems/ruby-1.9.2-p290/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-11
  - GEM PATHS:
     - /Users/hx/.rvm/gems/ruby-1.9.2-p290
     - /Users/hx/.rvm/gems/ruby-1.9.2-p290@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :gempath => ["/Users/hx/.rvm/gems/ruby-1.9.2-p290"]
     - :sources => ["http://rubygems.org/"]
  - REMOTE SOURCES:
     - http://rubygems.org/

对于sudo gem environment

  - RUBYGEMS VERSION: 1.8.15
  - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.0.1]
  - INSTALLATION DIRECTORY: /Users/hx/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: /Users/hx/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/hx/.rvm/rubies/ruby-1.9.2-p290/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-11
  - GEM PATHS:
     - /Users/hx/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1
     - /Users/hx/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :gempath => ["/Users/hx/.rvm/gems/ruby-1.9.2-p290"]
     - :sources => ["http://rubygems.org/"]
  - REMOTE SOURCES:
     - http://rubygems.org/

注意到安装目录不同。所以当我使用gem时,我没有权限(不知道为什么突然失去权限)。但是当我使用sudo gem 时,gem 没有安装到正确的位置。我该如何解决这个问题?

【问题讨论】:

  • 你是如何安装 RVM 的?这样做时您是否使用了sudo
  • 我想我在安装 rvm 时没有使用 sudo ......当时一切都很好,但我不知道为什么它突然需要权限......
  • 顺便说一句。 /Users/hx/.rvm/...下的 gem 文件夹...我如何需要权限??..有没有办法更改该文件夹的权限要求?

标签: gem rvm


【解决方案1】:

RVM 使用环境变量来配置 ruby​​gems - gem 命令,基本上如果您有用户安装 (~/.rvm),则不需要使用 sudo 调用任何命令,尤其是 gem - 如果工作将在您的主目录中以root 用户身份安装rail,使您无法管理您的文件...如果您有充分的理由使用sudo - 请改用rvmsudo - 但实际上您不应该拥有需要,尤其是安装 gems。

如果你想在你的系统中有一些可用的命令(比如gist),你可以使用rvm wrapper并在/usr/bin中链接生成的二进制文件

修复您家中的权限:

sudo chown $USER: ~/.rvm
sudo chmod u+rw ~/.rvm

【讨论】:

  • 是的。。我用它chmod来更改权限....但我仍然很好奇为什么我突然失去了权限..ok...没关系...thX!!!!
猜你喜欢
  • 2011-04-11
  • 1970-01-01
  • 2010-09-30
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 2011-06-26
相关资源
最近更新 更多