我记得我使用gem install rails
来安装Rails,但今天当我想安装另一个gem时,输入
gem install ruby-recaptcha
它失败了,说:
您没有写入权限...
然后我发现我的gem environment
和sudo 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
时,宝石没有安装到正确的位置。我该如何解决这个问题?
答案 0 :(得分:4)
RVM使用环境变量来配置rubygems - gem
命令,基本上如果你有用户安装(~/.rvm
),你不需要使用sudo
调用任何命令,尤其是gem
- 如果有效,则会在您的主目录中以root
用户身份安装rails,这使您无法管理文件......如果您有充分理由使用sudo
- 使用rvmsudo
代替 - 但实际上你不应该有这种需要,尤其是安装宝石。
如果您想在系统中使用某些命令(例如gist
),可以使用rvm wrapper
并在/usr/bin
中链接生成的二进制文件
修复您家中的权限:
sudo chown $USER: ~/.rvm
sudo chmod u+rw ~/.rvm