这是因为在使用gem
时看到的命令使用的Gem安装目录gem env
设置为:
<base_ruby_dir>/lib/ruby/gems/1.9.1
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么?
不应该调用该文件夹:
<base_ruby_dir>/lib/ruby/gems/1.9.x
Run Code Online (Sandbox Code Playgroud)
要么
<base_ruby_dir>/lib/ruby/gems/1.9
Run Code Online (Sandbox Code Playgroud)
或者不可能每个版本的Ruby都有一个,例如:
c:/ruby191/lib/ruby/gems/1.9.1
c:/ruby192/lib/ruby/gems/1.9.2
c:/ruby193/lib/ruby/gems/1.9.3
Run Code Online (Sandbox Code Playgroud)
我知道这不是一个关键问题,我只是想知道.
Mar*_*une 28
在Ruby 1.9.0中,C接口已从Ruby 1.8系列更改.
编译为本机代码的gem必须重新编译.
在Ruby 1.9.1中再次更改了界面,并在Ruby 1.9.2和3中保持相同.这解释了您在路径中看到的1.9.1.
我们的想法是,您可以在系统上安装不同版本的Ruby,并且可以在具有相同C api的组内共享gem.所以Ruby 1.8.6和1.8.7可以分享他们的宝石,Ruby 1.9.1,.2和.3也可以.
不过,这不一定是最好的主意.在任何情况下,大多数人都使用rvm
访问不同版本的Ruby,并rvm
为每个版本保持宝石分离,无论C api版本如何.