ОШИБКА: при выполнении gem... (TypeError) несовместимый формат файла маршала (не читается) - программирование
Подтвердить что ты не робот

ОШИБКА: при выполнении gem... (TypeError) несовместимый формат файла маршала (не читается)

Я столкнулся с этой проблемой при запуске bundle install с Ruby версии 2.4.4 и macOS Mojave:

Fetching nokogiri 1.8.5
Installing nokogiri 1.8.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
ERROR: cannot discover where libxml2 is located on your system. please
make sure 'pkg-config' is installed.

Итак, я побежал

xcode-select --install

Но когда я запустил gem install nokogiri я получил следующий вывод:

ERROR:  While executing gem ... (TypeError)
    incompatible marshal file format (can't be read)
    format version 4.8 required; 60.33 given

Я попытался установить мой cookies_serializer на :hybrid:

Rails.application.config.action_dispatch.cookies_serializer = :hybrid

Но ничего не сработало.

Есть ли способ это исправить? Я даже не могу запустить свой сервер Rails прямо сейчас.

4b9b3361

Ответ 1

Благодаря ответу Моргана Джарри, это то, что сработало для меня:

Я проверил мои текущие источники, и они действительно устарели:

gem sources

Это напечатано

*** CURRENT SOURCES ***
http://gems.rubyforge.org/
http://gems.github.com

Поэтому я запустил этот скрипт, чтобы удалить их, и заменил их на https://rubygems.org/

gem sources -r  http://gems.rubyforge.org/
gem sources -r http://gems.github.com
gem sources -a https://rubygems.org/

Ответ 2

Попробуйте удалить ~/.gemrc. У меня была такая же проблема на Мохаве, и это решило мою проблему.

Ответ 3

Вы должны удалить все имеющиеся у вас источники драгоценных камней и вместо этого добавить https://rubygems.org/. Обратите внимание, что http://gems.rubyforge.org/ и http://gems.github.com окончательно мертвы и должны быть удалены. Вы можете перечислить свои источники, запустив:

gem sources 

Вы должны получить что-то вроде этого:

*** CURRENT SOURCES ***

//gems.rubyforge.org/
//gems.github.com

1) Удалить все источники:

gem sources -r http://gems.rubyforge.org/
gem sources -r http://gems.github.com

2) Добавьте правильный источник:

gem sources -a https://rubygems.org/

Надеюсь это поможет!