171 votes

Ignorant les GEM car ses extensions ne sont pas construites

Sur mon travail qu'à la maison, j'ai récemment mis à jour Ruby à l'article 2.3.1, à l'aide de ruby-install. J'utilise chruby que mon Ruby switcher.

J'ai commencé à voir cet avertissement dans mon terminal:

Ignoring bcrypt-3.1.11 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.11
Ignoring bcrypt-3.1.10 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.10
Ignoring binding_of_caller-0.7.2 because its extensions are not built.  Try: gem pristine binding_of_caller --version 0.7.2
Ignoring byebug-9.0.5 because its extensions are not built.  Try: gem pristine byebug --version 9.0.5
Ignoring byebug-5.0.0 because its extensions are not built.  Try: gem pristine byebug --version 5.0.0
Ignoring concurrent-ruby-ext-1.0.2 because its extensions are not built.  Try: gem pristine concurrent-ruby-ext --version 1.0.2
Ignoring debug_inspector-0.0.2 because its extensions are not built.  Try: gem pristine debug_inspector --version 0.0.2

Sur mon travail, ordinateur, la liste est beaucoup plus longue, mais facile à résoudre. Quand j'ai essayé le suggère gem pristine GEM, il m'a dit qu'il ne pouvait pas trouver la gemme, donc j'ai couru gem install GEM, et que résolu.

À la maison, rien ne fonctionne.

Choses que j'ai essayé, du sens commun et de divers autres Pile questions:

  • gem pristine GEM
  • gem pristine --all
  • désinstallation et réinstallation du gem
  • gem update
  • gem update --system
  • bundle update
  • désinstallation et réinstallation bundler
  • désinstallation et réinstallation rails (Bien qu'il n'est pas un Rails de problème spécifique.)
  • la suppression d' ~/.bundle/
  • l'ouverture d' XCode et la laisser s'installer quelques extensions (Il n'a besoin de le faire, mais il n'a pas de résoudre quoi que ce soit.)
  • l'exécution brew doctor et de résoudre tous les problèmes mineurs, alors brew update et brew upgrade
  • gem install curb (Je ne peux pas imaginer ce que ce petit bijou a à voir avec ce problème, mais deux personnes différentes répertoriés comme la dernière étape de leur fixer de la même avertissement.)

205voto

sevenseacat Points 12086

Je suis tombé sur cette question précise aujourd'hui - obtenir des avertissements comme ceci pour les pierres précieuses qui n’étaient pas encore installés !

... Eh bien, il se trouve sur les pierres précieuses ont été installé - pour un rubis différent que celui que j’avais mis active avec chruby (2.2.3 vs 2.3.1).

Basculer vers tous les rubis différentes et en cours d’exécution `` sur chacun d’eux a résolu le problème.

28voto

opes Points 798

J’ai tombé sur ce problème et suivi tous les mêmes commandes que ci-dessus, allant même jusqu'à supprimer tous mes versions Rubies précédemment installées. Cependant, l’erreur persiste.

Il s’avère que, là ont été quelques restes des pierres précieuses pour les différentes versions (précédemment désinstallées) dans `` . Après avoir retiré les dossiers que j’ai n’est plus utilisé, les erreurs ont disparu.

14voto

Simon Somlai Points 326

J'ai eu ce problème aujourd'hui, et frustré parce que je ne pouvais pas parce que mon éditeur a clignoté rouge avec des messages d'erreur.

Je ne suis pas entièrement sûr de ce que exactement provoquée, mais je crois que c'est parce que nous avons de multiples versions rubis OU plusieurs version de ruby gestionnaires installés et qu'ils écrasent les autres et autrement gâcher vos chemins d'accès vers les pierres précieuses.

L' gem commande sera écrasé lorsque vous avez rbenv et du rvm.

Voir quels sont ceux que vous avez installé en tapant;

which rvm
which rbenv
which chruby

Si l'un d'eux est installé, il va revenir d'un chemin. Pour les supprimer, assurez-vous de nettoyer complètement tous les répertoires et de commencer avec une installation propre.


Supprimer

Voici ce que j'ai fait pour rvm;

rvm implode
gem uninstall rvm
rm -rf ~/.rvm
rm -rf ~/.rvmrc

Voici ce que j'ai fait pour rbenv

D'abord installé https://github.com/bernsie/rbenv-cleanpuis

rbenv clean
sudo apt-get remove rbenv
rm -rf ~/.rbenv

Réinstaller

Ensuite, vous avez une maison propre répertoire de travail. Je reïnstalled rbenv avec Comment installer Ruby 2.1.4 sur Ubuntu 14.04. Et enfin;

rbenv rehash

11voto

Sebastian Kim Points 226

J’ai fait tout ce que mentionné ci-dessus y compris

  • Xcode-sélectionnez--install
  • réinstaller le rubis
  • Réinstallez toutes les gemmes
  • GEM vierge--tous les

mais la question était la même pour moi. J’ai juste redémarré mon Mac comme le dernier espoir, et les messages d’avertissement sont disparus.

Bizarre, mais si quelqu'un est aux prises avec ce problème après avoir essayé tout sur StackOverflow, essayez de redémarrer votre machine.

2voto

Barry Points 569

TL;DR - gems Ruby n'aime pas les Rubis cours d'exécution à partir des liens symboliques ou déplacé de l'endroit où ils ont été construits (en raison de l'embedded shebangs)

Si le Rubis répertoire est invoquée ou des variables d'environnement point à un lien symbolique ed répertoire, ou sont copiés ou renommé, ce message est susceptible. Je suis à l'aide de chruby et a été de lier celui - /opt/rubies/ -> /usr/local/ruby/, mais Ruby dans la dynamique de la bibliothèque-logique ne joue pas bien avec cela.

La solution dans mon cas était de remplacer le lien avec la réalité des rubis en /opt/rubies/ et exécutez gem pristine --all dans chaque Ruby. Pour d'autres, à l'aide de RVM ou Rbenv, bonne chance avec ça sans avoir à tout recommencer à partir de zéro.

Cela peut ne pas être votre problème précis, mais j'espère que ça aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X