После запуска `gem update --system` Bundler упаковывает драгоценные камни в vendor / cache / ruby ​​/ <version> - PullRequest
1 голос
/ 05 августа 2020

При попытке решить проблему с объединением в TravisCI я случайно запустил

gem update --system

на моем Ma c. Это обновило кучу вещей, но я точно не знаю, что, так как я не сохранял вывод. После этого в моем приложении Rails я заметил, что когда я запустил bundle install --local, он начал установку и упаковку драгоценных камней в vendor/cache/ruby/<version> вместо использования тех, что в vendor/cache.

Путь в Bundler установлен на vendor/cache, но некоторые другие настройки заставляют его объединять драгоценные камни в каталог версии ruby. Кто-нибудь знает, что это за настройка или как я могу исправить Bundler, чтобы он использовал драгоценные камни из vendor/cache?

версий Gem

bundler - 2.1.2 (2019-12-20 commit 4da3289eb)
rubygems - 3.1.2

Bundler Config

$ bundle config
Settings are listed in order of priority. The top value will be used.
build.libv8
Set for the current user (/Users/me/.bundle/config): "--with-system-v8"

cache_all
Set for your local app (/Users/me/forem/.bundle/config): true
Set for the current user (/Users/me/.bundle/config): true

jobs
Set for the current user (/Users/me/.bundle/config): 3

path
Set for the current user (/Users/me/.bundle/config): "vendor/cache"

Сообщите мне, будет ли полезна какая-либо другая информация!

1 Ответ

0 голосов
/ 05 августа 2020

Хорошо, ребята, вот в чем была проблема.

Объяснение Bundler

Bundler имеет 2 настройки

  1. путь (BUNDLE_PATH) - место на диске, где будут расположены все драгоценные камни в вашем пакете, независимо от значений $ GEM_HOME или $ GEM_PATH. Самоцветы пакета, не найденные в этом месте, будут установлены путем установки пакета. По умолчанию Gem.dir. Когда используется --deployment, по умолчанию используется vendor / bundle.
  2. cache_path (BUNDLE_CACHE_PATH) - каталог, в который сборщик будет помещать кешированные драгоценные камни при запуске

Проблема

Я установил для BUNDLE_PATH значение «vendor / cache». Это заставило Bundler попытаться установить все драгоценные камни в "vendor / cache / ruby ​​//", который не игнорируется .gitignore и, следовательно, вызывает огромные различия.

Решение:

Восстановите для BUNDLE_PATH значение по умолчанию "vendor / bundle"

...