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

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

问题描述

我记得我用 gem install rails 来安装Rails,但是今天当我想安装另一个gem时,通过键入

  gem install ruby​​-recaptcha 

说:


您没有写入权限...


然后我发现我的 gem环境 sudo gem environment 有不同的结果:



对于 gem环境

  RubyGems环境:
- RUBYGEMS版本:1.8.15
- RUBY VERSION:1.9.2(2011-07-09 patchlevel 290)[x86_64-darwin11.0.1]
- 安装目录:/Users/hx/.rvm/gems/ruby-1.9.2-p290
- RUBY EXECUTABLE:/Users/hx/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
- 可执行目录:/Users/hx/.rvm/gems/ruby-1.9.2-p290/bin
- RUBYGEMS平台:
- ruby​​
- x86_64-darwin- 11
- 创业板路径:
- /用户/hx/.rvm/gems/ruby-1.9.2-p290
- /Users/hx/.rvm/gems/ruby-1.9.2-p290@global
- 创业板配置:
- :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/]
- 远程来源:
- 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]
- 安装目录:/ 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平台:
- ruby​​
- x86_64-达尔文-11
- 创业板路径:
- /Users/hx/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1
- /用户/hx/.gem/ruby/1.9.1
- 创业板配置:
- :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/]
- 远程来源:
- http://rubygems.org/

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

解决方案

RVM使用环境变量来配置rubygems - gem 命令,基本上如果你有用户安装(〜/ .rvm ),你不需要用 sudo ,特别是 gem - 如果工作的话,会在你的主目录中安装rail作为 root 使你无法管理你的文件......如果你有充分的理由使用 sudo - 使用 rvmsudo 相反 - 但实际上你不应该有这种需求,尤其是安装宝石。



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

修复您家中的权限:

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


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

it fails, saying:

You don't have write permissions into the ...

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

For 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/

For 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/

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 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.

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

to fix permissions in your home:

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

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

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