Почему гемы устанавливаются в каталог с другой версией Ruby, чем я использую? - PullRequest
16 голосов
/ 15 июня 2011

Когда я устанавливаю гем, он устанавливается в каталог с именем 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).

Ответы [ 2 ]

29 голосов
/ 15 июня 2011

Обратите внимание, что это также относится ко всем более поздним версиям Ruby, а не только к 1.9.2.


В соответствии с объявлением о выпуске 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.

Это гарантирует, что набор установленных драгоценных камней используется только теми версиями, с которыми они действительно могут работать (особенно из-за скомпилированных расширений C), и что при обновлении до более новой, но «совместимой с библиотекой» версии одна нужно переустановить все драгоценные камни.

1 голос
/ 15 июня 2011

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

Было несколько значительных обновлений в ядре 1.9.2, но я не думаю, что что-то в стандартной библиотеке было изменено, поэтому они используют один и тот же путь. Но не о чем беспокоиться - как вы сказали, все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...