Что это значит BUNDLE_DISABLE_SHARED_GEMS: ‘1’?

#ruby-on-rails #ruby #gem #bundler #config

#ruby-on-rails #ruby #rubygems #bundler #конфигурация

Вопрос:

Я нашел BUNDLE_DISABLE_SHARED_GEMS: '1' , в .bundle/config . Что это значит?

Ответ №1:

Bundler берет некоторые настройки из ~/.bundle/config файла, а не из оболочки env.

Если установлено значение true (по умолчанию), установка всех драгоценных камней будет осуществляться в BUNDLE_PATH , независимо от того, установлены ли эти драгоценные камни в вашей системе.

По умолчанию Bundler не будет устанавливать gems, которые уже есть в системных gems, так что это особенно полезно, если вы пытаетесь упаковать приложение со всеми распакованными зависимостями.

Комментарии:

1. я предполагаю, что в данном случае 1 == true?

Ответ №2:

Это означает, что «установка пакета» всегда будет устанавливать драгоценные камни в локальный каталог (по умолчанию .bundle ) и использовать их вместо общесистемных установленных драгоценных камней.

Комментарии:

1. Я обнаружил, что моему .bundle/config файлу BUNDLE_DISABLE_SHARED_GEMS присвоено значение true, но при запуске bundle в локальную .bundle папку не были установлены драгоценные камни. BUNDLE_PATH параметр env var не установлен.

Ответ №3:

Скажу больше, я закомментировал BUNDLE_DISABLE_SHARED_GEMS: ‘1’ в моей системе, и это помешало passenger standalone обслуживать страницу, выдавая ошибку, начинающуюся со слов: «Похоже, что Bundler не смог найти gem».

Я запускаю все свои драгоценные камни, кроме passenger, в локально собранном наборе драгоценных камней.

Ответ №4:

Из документации bundler:

Запретить Bundler доступ к gems, установленным в обычном расположении RubyGems.