当我安装 gem 时,它会安装在名为 1.9.1 的目录中,尽管这不是我安装的 Ruby 版本:
$ ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0]
$ gem which rails
.../ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails.rb
为什么会出现这种情况?我没有安装其他 Ruby 版本(当然也没有安装 v1.9.1)。
请注意,以下内容也适用于撰写本文时的所有更高版本的 Ruby,而不仅仅是 1.9.2。
Per the 1.9.2 发布公告:
标准库安装在/usr/local/lib/ruby/1.9.1
该版本是“库兼容版本”。 Ruby 1.9.2 几乎与 1.9.1 兼容,因此该库安装在 1.9.1 目录中。
尽管它安装在不同编号的目录中,但它使用的是 1.9.2。 RubyGems 可以通过以下方式显示它正在使用的所有目录gem env
.
这确保了一组已安装的 gem 仅由它们实际可以运行的版本使用(特别是由于编译的 C 扩展),并且当升级到较新但“库兼容”的版本时,不必重新安装所有宝石。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)