web-dev-qa-db-fra.com

ERREUR: lors de l'exécution de gem ... (TypeError) format de fichier marshal incompatible (ne peut pas être lu)

J'ai rencontré ce problème lorsque j'exécute bundle install avec Ruby version 2.4.4 et 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.

Alors j'ai couru

xcode-select --install

Mais quand je lance gem install nokogiri J'ai obtenu la sortie suivante:

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

J'ai essayé de régler mon cookies_serializer à :hybrid:

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

Mais rien n'a fonctionné.

Y'a t'il un moyen d'arranger cela? Je ne peux même pas exécuter mon serveur Rails pour le moment.

17
Rémi JUHE

Grâce à la réponse de Morgan Jarry, c'est ce qui a fonctionné pour moi:

J'ai vérifié mes sources actuelles et en effet elles étaient dépassées:

gem sources

Il a imprimé

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

J'ai donc exécuté ce script pour les supprimer et les ai remplacés par https://rubygems.org/

gem sources -r  http://gems.rubyforge.org/
gem sources -r http://gems.github.com
gem sources -a https://rubygems.org/
38
Rémi JUHE

Essayez de supprimer votre ~/.gemrc. J'ai eu le même problème sur Mojave et cela résout mon problème.

22
Morgan Jarry

Vous devez supprimer toutes les sources de gemmes que vous avez et ajouter à la place https://rubygems.org/ . Notez que http://gems.rubyforge.org/ et http://gems.github.com sont définitivement morts et doivent être supprimés. Vous pouvez répertorier vos sources en exécutant:

gem sources 

Vous devriez obtenir quelque chose comme ceci:

*** CURRENT SOURCES ***

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

1) Supprimer toutes les sources:

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

2) Ajoutez la bonne source:

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

J'espère que cela t'aides!

8
Theo Avoyne