Подтвердить что ты не робот

Почему мы устанавливаем камни 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

Не критическая проблема, которую я знаю, мне просто интересно.

4b9b3361

Ответ 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

Я думаю, потому что эти версии должны быть совместимы, и если у вас есть отдельные каталоги, вам придется переустановить все свои драгоценные камни. Таким образом, вы можете обновить версию рубинов, не переустанавливая все драгоценные камни.