Запущенный пакет или rspec добавляет строку в Gemfile.lock - PullRequest
0 голосов
/ 08 июня 2018

После запуска различных команд (например, bundle и rspec) в проекте Ruby, Gemfile.lock обновляется и x86_64-darwin-17 добавляется в заголовок PLATFORMS.Почему это происходит?Как я могу предотвратить это?

Запуск gem env дает такой интересный контекст:

○ → gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.6
  - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-darwin17]
  #...etc  
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-17

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Это было вызвано глобальной конфигурацией компоновщика.Установка значения false остановила поведение.

specific_platform (BUNDLE_SPECIFIC_PLATFORM): разрешить бандлеру разрешать для конкретной работающей платформы и сохранять его в файле блокировки вместо использования только общей платформы.Конкретной платформой является точная триплетная платформа, сообщаемая Gem :: Platform.local, такая как x86_64-darwin-16 или universal-java-1.8.С другой стороны, универсальными платформами являются такие, как ruby, mswin или java.В этом примере x86_64-darwin-16 будет соответствовать ruby, а universal-java-1.8 - java.

0 голосов
/ 08 июня 2018

Если вы хотите установить зависимости без обновления Gemfile.lock, просто используйте параметр --frozen .например, bundle --frozen.Это установит зависимости нормально, за исключением того, что не будет обновлено Gemfile.lock

Редактировать

Если это не очень хорошее решение, вероятно, лучше всего будет добавить Gemfile.lock к .gitignore специально для вашего местного репо.Вы можете создать его на your_repo/.git/info/exclude согласно этому ответу

...