ОШИБКА: при выполнении 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 прямо сейчас.
Ответы
Ответ 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/
Надеюсь это поможет!