Как я могу решить "Ваш пакет поддерживает только платформы ["x86-mingw32"], но ваши локальные платформы - ["ruby ​​", "x86_64-linux"]"

Я создаю сайт rails на компьютере с Windows, но когда я регистрирую свой Gemfile.lock, я получаю следующую ошибку на моих сборках Travis:

Your bundle only supports platforms ["x86-mingw32"] but your local platforms are ["ruby", "x86_64-linux"], and there's no compatible match between those two

списки

Вот полный журнал: https://travis-ci.org/bikebike/BikeBike/builds/222395810

Я посмотрел на свой Gemfile.lock и там написано:

PLATFORMS
  x86-mingw32

Который, кажется, является частью проблемы. Я пытался положить любые окна конкретных драгоценных камней в platforms блок:

platforms 'mswin', 'mingw', 'mswin64', 'x64_mingw' do
  gem 'tzinfo-data'

  group :test do
    gem 'wdm', '>= 0.1.0'
    gem 'win32console', require: false
  end
end

Но Gemfile.lock выглядит так же.

Вот мой полный Gemfile и Gemfile.lock.

Я могу временно обойти эту проблему, удалив файл Gemfile.lock из git, но это не лучшая практика. В любом случае я могу зафиксировать свой файл Gemfile.lock и продолжить разработку на моей машине с Windows?

2 ответа

Выполните следующие две команды в командной строке:

bundle lock --add-platform ruby
bundle lock --add-platform x86_64-linux

Это добавит две платформы в Gemfile.lock

У меня была такая же ошибка при развертывании в облаке Google. Но после запуска этих двух команд были добавлены ruby ​​и x86_64-linux, и проблема была решена.

Для Ruby 2.5.1 я решил эту проблему на своем VPS, добавив также платформы, упомянутые в сообщении об ошибке, в раздел списка платформ gemfile.lock:

PLATFORMS
  x86-mingw32
  ruby 
  x86_64-linux

Только тогда, выполняя следующие команды из каталога приложения (как уже показано в ответе Таз)

bundle lock --add-platform ruby
bundle lock --add-platform x86_64-linux

привести к успеху.

Другие вопросы по тегам