Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR: While executing gem ... (TypeError) incompatible marshal file format (can't be read)

I encountered this issue when I run bundle install with Ruby version 2.4.4 and 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.

So I ran

xcode-select --install

But then when I run gem install nokogiri I got the following output:

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

I tried to set my cookies_serializer to :hybrid:

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

But nothing worked.

Is there a way to fix this? I cannot even run my Rails server right now.

like image 729
Rémi JUHE Avatar asked Feb 20 '19 12:02

Rémi JUHE


3 Answers

Thanks to Morgan Jarry answer, this is what worked for me :

I checked my current sources and indeed they were outdated :

gem sources 

It printed

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

So I ran this script to remove them and replaced them with https://rubygems.org/

gem sources -r  http://gems.rubyforge.org/ gem sources -r http://gems.github.com gem sources -a https://rubygems.org/ 
like image 72
Rémi JUHE Avatar answered Sep 18 '22 15:09

Rémi JUHE


Try removing your ~/.gemrc. I had the same problem on Mojave and this solve my problem.

like image 28
Morgan Jarry Avatar answered Sep 21 '22 15:09

Morgan Jarry


You have to remove all the gem sources you have and add https://rubygems.org/ instead. Note that http://gems.rubyforge.org/ and http://gems.github.com are permanently dead and should be removed. You can list your sources by running:

gem sources 

You should get something like this:

*** CURRENT SOURCES ***

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

1) Delete all sources:

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

2) Add the right source:

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

Hope this helps!

like image 31
tavoyne Avatar answered Sep 21 '22 15:09

tavoyne