Означает ли использование JRuby дубликат Ruby во всех приложениях?
-
06-07-2019 - |
Вопрос
Например, если я устанавливаю Rails для обычного Ruby, должен ли я иметь специальную установку Rails для JRuby? Так что у меня есть дубликаты для всего?
Решение
Простой ответ - да. JRuby представляет собой отдельную установку Ruby в вашей системе, поэтому Gems должен быть установлен как на JRuby, так и на Ruby отдельно.
Другие советы
Если вы связываете свои гемы с вашим Rails-приложением, и это может включать в себя и сам Rails, то нет необходимости иметь несколько установок.
Некоторые гемы бывают разных платформенных разновидностей, например, для JRuby или Win32, что может сделать это непрактичным, если приложение запускается в среде со смешанной платформой. В то время как Rails, кажется, не разветвляется таким образом, многие другие, особенно те, которые тесно связаны с Ruby, такие как скомпилированные расширения, делают.
Стоит попытаться связать как можно больше драгоценных камней с вашим приложением и использовать замороженную версию Rails, чтобы увидеть, как это работает, и настроить ее по мере необходимости.
Некоторые драгоценные камни используют расширения не-FFI C. Они не будут работать под JRuby. Р>
Некоторые драгоценные камни устанавливаются по-разному, в зависимости от платформы (например, Mongrel). В этом случае требуется отдельная установка.
Вы можете установить Ruby и JRuby бок о бок, а затем сравнить гемы следующим образом:
gem list --local
jruby -S gem list --local