1

Мне было интересно, почему bundler всегда загружает драгоценные камни, которые уже присутствуют в моем gemset? Я имею в виду, что каждый раз после запуска команд rails new10 и bundle install, bundler загружает те же самые драгоценные камни, которые присутствуют в системе. Теперь я знаю об --local, чтобы предотвратить это поведение, но просто подумал, что было бы хорошо, если бы он мог сначала сделать простой проверьте, и что на самом деле указывает на это.Bundler загружает драгоценные камни, присутствующие в системе?

Редактировать: Извините, ребята, похоже, что поставщик действительно использует драгоценные камни из системы. Я думал иначе, потому что ему потребовалось 20 секунд, чтобы закончить, но это было связано с моим очень медленным подключением к Интернету и, вероятно, заняло так много времени для разрешения зависимостей.

+0

я не заметил, что поведение * Bundler *, как я воспроизвожу, что –

+0

Вы используете RVM? – manojlds

+0

Вы хотите сказать, что он переустанавливает каждый раз, когда вы запускаете спутник? Как вы скажете, что он загружается каждый раз? – suren

ответ

0

Bundler не идет повторно принести драгоценные камни, если одна из этих вещей не верно:

  • Вам не один и тот же камень и ту же версию (или допустимый диапазон версий) установлен.
  • Вы используете RVM и различные гемзеты для разных проектов и не помещаете их в глобальный гемсет.
  • Пути драгоценных камней не находятся в пути поиска, который использует Bundler.

Если это для вас проблемой, вы можете использовать --local, как вы знаете, чтобы заставить Bundler никогда даже смотреть на что-нибудь еще, но вы также можете указать версии для всех ваших драгоценных камней. И убедитесь, что правильная версия находится в Gemfile.lock.

В конце концов, Bundler делает только то, что вы ему говорите. Конечно, вы также не можете использовать Bundler.

0

По умолчанию для bundle install есть опция --system, которая установит систему в ширину и, следовательно, также будет использовать существующие драгоценные камни.

Если вы используете что-то вроде rvm, вы не увидите этого поведения. Также обратите внимание на то, что bundler запоминает предыдущие аргументы, предоставленные для некоторых параметров, таких как path. Если он использовался ранее для приложения, он будет запомнен для будущих вызовов.

--local является использование локального кэша - http://bundler.io/v1.5/man/bundle-install.1.html

Смежные вопросы