rubygems会自动在home目录下建一个.gem文件夹,其结构和你的gem安装目录是一样的
$ls ~/.gem/ruby/1.8/
cache/ doc/ gems/ specifications/
$gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9.8.0]
- INSTALLATION DIRECTORY: /Users/tao/ruby/lib/ruby/gems/1.8(我没有把ruby装到系统目录)
- RUBY EXECUTABLE: /Users/tao/ruby/bin/ruby
$ls /Users/tao/ruby/lib/ruby/gems/1.8
cache/ doc/ gems/ specifications/
如果你的ruby和rubygems安装到了系统中(比如装在/usr/local),或者系统自带有,那么你可要小心:
sudo gem install 和gem install的区别!
如果不用sudo,gem因为没有写权限,会自作主张地把gem装到~/.gem目录里.
你用gem list查看现有gems,看到的是两个地方装的全部gems.
但是,如果rails及其相关gems安装在一个地方,而另一个gem(比如pg,mysql之类的database adapter)被装到了另一个地方,那么可能会产生让你抓狂的错误(比如说找不到相应的adapter).我就为这个问题苦恼了一整天.
教训是:要确保~/.gem/ruby/1.8/gems/目录是空的!确保把所有gems都装到你rubygems的
INSTALLATION DIRECTORY中去!
$ls /Users/tao/ruby/lib/ruby/gems/1.8/gems
actionmailer-2.3.5/ activeresource-2.3.5/ pg-0.8.0/ rake-0.8.7/
actionpack-2.3.5/ activesupport-2.3.5/ rack-1.0.1/ sqlite3-ruby-1.2.5/
activerecord-2.3.5/ mysql-2.8.1/ rails-2.3.5/
$ls ~/.gem/ruby/1.8/gems
$