问题描述
我记得我用 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:
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宝石”有不同的安装目录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!