Почему bundler не использует системные драгоценные камни?

#ruby #bundler

Вопрос:

Версия комплектации: 1.15.1 . Версия Ruby: 2.3.1 . У меня есть (от gem env ):

 - GEM PATHS:  - /var/lib/gems/2.3.0  - /root/.gem/ruby/2.3.0  - /usr/lib/x86_64-linux-gnu/rubygems-integration/2.3.0  - /usr/share/rubygems-integration/2.3.0  - /usr/share/rubygems-integration/all  

Со всеми драгоценными камнями из Gemfile.замок присутствует под /var/lib/gems/2.3.0 . Но bundler не будет пытаться повторно использовать их, а вместо этого будет пытаться повторно загружать каждый раз.

Мой .bundle/config :

 ---  BUNDLE_PATH: "vendor/bundle"  BUNDLE_BIN: "vendor/bin"  BUNDLE_DISABLE_SHARED_GEMS: "true" lt;--- removing this config entry doesn't help  

запуск bundle install просто повторно загружает драгоценные камни вместо того, чтобы говорить «Использовать», поэтому это занимает много времени.

Каковы настройки, которые могут вызвать это, и как заставить комплектующего получать драгоценные камни из системного пути /var/lib/gems/2.3.0 ?

Я полностью прочитал документы по установке пакета и пакета, но не вижу, как я могу заставить bundler использовать системные драгоценные камни. Кроме использования source 'file:///var/lib/gems/2.3.0' после создания индекса, но я бы очень хотел избежать этого и использовать более элегантное решение. Тем более, что это, вероятно, приведет к переустановке драгоценных камней, что займет даже больше времени, чем повторная загрузка.

Ответ №1:

Вы приступили BUNDLE_DISABLE_SHARED_GEMS к true этому . Этот параметр предписывает bundler специально игнорировать любые установленные в системе драгоценные камни. Вместо этого bundler загружает все необходимые драгоценные камни в ваш BUNDLE_PATH .

Если вы хотите использовать установленные в системе драгоценные камни, если это необходимо, удалите этот BUNDLE_DISABLE_SHARED_GEMS параметр из конфигурации пакета.

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

1. Только сейчас я заметил, что после удаления этой записи она автоматически появляется снова! Поэтому, когда я удаляю его из файла , при запуске bundle install он сразу же добавляется в файл.

2. Теперь я кое-что понял. bundle install будет делать это всякий раз, когда будет принято решение не устанавливать драгоценные камни в системный путь (поэтому BUNDLE_PATH и BUNDLE_BIN настройки). Я воздержусь от комментариев по поводу того, что я думаю по этому поводу. Спасибо вам за помощь!