为什么要“宝石"?和“须藤宝石"有不同的安装目录? [英] Why do "gem" and "sudo gem" have different installation directories?
问题描述
我记得我使用 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 environment
和sudo 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 使用环境变量来配置 rubygems - 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屋!