为什么要“宝石"?和“须藤宝石"有不同的安装目录? [英] Why do "gem" and "sudo gem" have different installation directories?

查看:36
本文介绍了为什么要“宝石"?和“须藤宝石"有不同的安装目录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I remember I used gem install rails to install Rails, but today when I want to install another gem, by typing

gem install ruby-recaptcha

它失败了,说:

您没有写入权限...

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

Then I found my gem environment and sudo gem environment have different results:

对于gem环境:

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 环境:

  - 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 没有安装到正确的位置.我该如何解决这个问题?

Noticed that the installation directory is different. So when I use gem, I do not have permissions (I don't know why I suddenly lose the permission). But when I use sudo gem, the gem is not installed into the right place. How can I fix this?

推荐答案

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

RVM uses environment variables to configure rubygems - the gem command, basically if you have user installation (~/.rvm) you should not need to use to call any commands with sudo, especially gem - that if worked would install rail as root user in your home directory, making it impossible for you to manage your files ... if you have any good reasons to use sudo - use rvmsudo instead - but really you should not have that need, especially to install gems.

如果你想在你的系统中有一些可用的命令(比如 gist)你可以使用 rvm wrapper 并在 /usr/bin

If you want to have some commands available in your system (like gist) you can use rvm wrapper and link generated binary in /usr/bin

修复您家中的权限:

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

这篇关于为什么要“宝石"?和“须藤宝石"有不同的安装目录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆