Почему мы устанавливаем камни Ruby 1.9.2/1.9.3 в папку 1.9.1?
Это происходит из-за того, что каталог установки Gem, используемый командой gem
, видимой при использовании gem env
, имеет значение:
<base_ruby_dir>/lib/ruby/gems/1.9.1
Мой вопрос: почему?
Не следует вызывать папку:
<base_ruby_dir>/lib/ruby/gems/1.9.x
или
<base_ruby_dir>/lib/ruby/gems/1.9
или иначе не может быть одного для каждой версии 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
Не критическая проблема, которую я знаю, мне просто интересно.
Ответы
Ответ 1
В Ruby 1.9.0 интерфейс C был изменен из серии Ruby 1.8.
Самоцветов, которые компилируются в собственный код, пришлось перекомпилировать.
Интерфейс был снова изменен в Ruby 1.9.1 и остался прежним в Ruby 1.9.2 и 3. Это объясняет 1.9.1, который вы видите на своем пути.
Идея состоит в том, что вы можете установить в своей системе разные версии Ruby, и что драгоценные камни будут использоваться в группах, имеющих одинаковый C api. Таким образом, Ruby 1.8.6 и 1.8.7 могут делиться своими драгоценными камнями, и поэтому Ruby 1.9.1,.2 и .3.
Это не обязательно лучшая идея. В любом случае большинство людей используют rvm
для доступа к разным версиям Ruby и rvm
, которые хранят драгоценные камни отдельно для каждой версии, независимо от версии C api.
Ответ 2
Я думаю, потому что эти версии должны быть совместимы, и если у вас есть отдельные каталоги, вам придется переустановить все свои драгоценные камни. Таким образом, вы можете обновить версию рубинов, не переустанавливая все драгоценные камни.