Sur mon ordinateur de travail et à la maison, j'ai récemment mis à niveau Ruby vers la version 2.3.1, en utilisant ruby-install
. J'utilise chruby
comme sélecteur Ruby.
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 était beaucoup plus longue, mais facile à résoudre. Quand j'ai essayé le suggéré gem pristine GEM
, il m'a dit qu'il ne pouvait pas trouver la gemme, alors j'ai couru gem install GEM
, et cela l'a résolu.
À la maison, rien ne fonctionne.
Choses que j'ai essayées, du bon sens et de diverses autres questions de Stack:
gem pristine GEM
gem pristine --all
- désinstaller et réinstaller le gem
gem update
gem update --system
bundle update
- désinstallation et réinstallation
bundler
- désinstaller et réinstaller
rails
(bien que ce ne soit pas un problème spécifique à Rails.) - suppression
~/.bundle/
- ouvrir
XCode
et laisser installer certaines extensions (il fallait le faire, mais cela n'a rien corrigé.) - exécuter
brew doctor
et résoudre tous les problèmes mineurs, puisbrew update
etbrew upgrade
gem install curb
(Je ne peux pas imaginer ce que cette gemme a à voir avec ce problème, mais deux personnes différentes l'ont répertorié comme la dernière étape de leur correctif au même avertissement.)
bcrypt
et cela m'a toujours donné deux avertissements à ce sujet.gem pristine --all
n'a pas marché. Résolu en supprimant toutes les gemmes, y compris le bundler. Ensuite, j'ai installé le bundlergem install bundler
et enfin je suis retourné à mon projet et j'ai exécutébundle install
ce qui a réinstallé toutes mes gemmes et tout fonctionneRéponses:
Je suis tombé sur ce problème exact aujourd'hui: recevoir des avertissements comme celui-ci pour des gemmes qui n'étaient même pas installées!
... Eh bien, il s'avère que les gemmes ont été installées - pour un rubis différent de celui que j'avais activé avec chruby (2.2.3 vs 2.3.1).
Passer à tous les rubis différents et les exécuter
gem pristine --all
tous a résolu le problème.la source
gem pristine --all
cela ne fera aucun bien. Voir cette réponse sur Ask Different pour plus d'informations.gem pristine --all
rencontrez des problèmes d'autorisation, vous devriez vérifierwhich ruby
.brew link --overwrite ruby && source ~/.bash_profile
et courirgem pristine --all
peut aiderJ'ai rencontré ce problème et j'ai suivi toutes les mêmes commandes que ci-dessus, allant même jusqu'à supprimer toutes mes versions de Ruby précédemment installées. Cependant, l'erreur a persisté.
Il s'avère qu'il restait quelques gemmes pour les différentes versions (précédemment désinstallées) dans
~/.gem/ruby/
. Après avoir supprimé les dossiers que je n'utilisais plus, les erreurs ont disparu.la source
J'ai eu ce problème aujourd'hui aussi et c'était frustrant parce que je ne pouvais pas taper parce que tout mon éditeur clignotait en rouge avec des messages d'erreur.
Je ne suis pas tout à fait sûr de la cause exacte, mais je pense que c'est parce que nous avons plusieurs versions de ruby OU plusieurs gestionnaires de versions de ruby installés et qu'ils se remplacent mutuellement et gâchent autrement vos chemins vers les gemmes.
La
gem
commande est également écrasée lorsque vous avez rbenv et rvm.Voyez ceux que vous avez installés en tapant;
Si l'un de ceux-ci est installé, il renverra un chemin. Ensuite, supprimez-les, assurez-vous de nettoyer complètement tous les répertoires et commencez par une nouvelle installation.
Retirer
Voici ce que je l'ai fait pour RVM ;
Voici ce que j'ai fait pour rbenv
D'abord installé https://github.com/meowsus/rbenv-clean , puis
Réinstaller
Ensuite, vous avez un répertoire personnel propre à partir duquel travailler. J'ai réinstallé rbenv avec Comment installer Ruby 2.1.4 sur Ubuntu 14.04 . Et enfin;
la source
J'ai fait tout ce qui est mentionné ci-dessus, y compris
mais le problème était le même pour moi. Je viens de redémarrer mon Mac comme dernier espoir, et les messages d'avertissement ont disparu.
Bizarre, mais si quelqu'un est aux prises avec ce problème après avoir tout essayé sur StackOverflow, essayez de redémarrer votre machine.
la source
Si vous avez installé RVM, il est possible que vous détectiez l'erreur car vous avez installé des versions différentes.
Vérifiez et supprimez les versions inutiles, mais je pense que ce n'est pas une bonne approche. Quoi qu'il en soit, les erreurs ont disparu.
Après avoir actualisé les cocoapodes, il doit être injecté dans .rvm GEM_HOME
Probablement
pod COMMAND
lancera l'erreur à propos deminitest
gem, donc -gem install minitest
la source
TL; DR - Les gemmes Ruby n'aiment pas les Rubis exécutés à partir de liens symboliques ou déplacés de l'endroit où ils ont été construits (à cause des shebangs intégrés)
Si le répertoire Ruby est appelé ou que les variables d'environnement pointent vers un répertoire lié par un lien symbolique, ou sont copiées ou renommées, ce message est probable. J'utilise chruby et je faisais des liens symboliques
/opt/rubies/
->/usr/local/ruby/
, mais la logique dynamique de recherche de bibliothèque de Ruby ne joue pas bien avec cela.La solution dans mon cas était de remplacer le lien symbolique par des rubis réels
/opt/rubies/
et de l'exécutergem pristine --all
dans chaque Ruby. Pour les autres utilisant RVM ou Rbenv, bonne chance sans recommencer à zéro.Ce n'est peut-être pas votre problème exact, mais j'espère que cela vous aidera.
la source
gem pristine --all
de tous. Merci d'avoir ressuscité cette question morte. J'étais sur le point de tout brûler et de recommencer.Ajout de ma propre saveur ici. J'utilise
rbenv
installé via Homebrew et recevais quatre de ces messages "ignorant ... extensions non construites". Plus précisément:J'ai essayé beaucoup de choses dans ce fil sans succès. Enfin dans mon cas, j'ai fait:
brew uninstall rbenv
rm -rf ~/.rbenv
brew install rbenv
À ce stade, j'obtenais toujours les erreurs, mais maintenant je n'avais qu'une seule version de Ruby à affronter:
À ce stade, j'ai essayé
sudo gem pristine --all
mais j'ai été rejeté pour les autorisations sur le répertoire système Gems.Alors je suis passé et j'ai couru vierge sur chaque gemme, comme
sudo gem pristine bcrypt --version 3.1.12
(etc)Et finalement les erreurs avaient disparu.
la source
C'est un vieux fil, mais je viens de tomber sur ce problème moi-même.
Vous n'avez pas besoin de redémarrer votre machine, il vous suffit de rafraîchir votre environnement, vous pouvez le faire avec la commande rehash:
Depuis la page de manuel:
rehash command re-computes the internal hash table of the contents of directories listed in the path environmental variable to account for new commands added.
la source
rehash
ouhash -r
pour bash est une commande shell disponible sur * nix. Lorsque le shell C démarre, il construit une table de hachage de toutes les commandes de son chemin: chaque nom de commande et son chemin absolu. Ainsi, après avoir lancé un csh en cours d'exécution, si de nouveaux programmes sont ajoutés aux répertoires le long du chemin, vous devez utiliser la commande rehash du shell pour reconstruire sa table de hachage. (cf: docstore.mik.ua/orelly/unix3/upt/ch27_06.htm )J'ai eu ce problème mais seulement quand j'ai commencé la
tmux
session en utilisanttmuxinator
.Il s'est avéré que c'est parce que j'utilise
tmuxinator
debrew
au lieu de l'installer en utilisantgem install
. Peut-être que l'utilisationchruby
en même temps a également contribué au problème.p / s: J'ai également supprimé les rubis inutilisés de
~/.gem/ruby
mais je doute que ce soit la raison pour laquelle ce problème a été résolu pour moi.la source
L'exécution
gem pristine --all
n'a pas aidé au début, mais j'ai ensuite réalisé: le script que j'exécutais commençait par la ligne:#!/usr/bin/ruby
Sur mon système macOS (Catalina, mais je ne pense pas que cela compte), cela pointe vers le Ruby fourni avec le système, pas celui installé par RVM. L'exécution
gem pristine --all
réparait l'installation de RVM, mais mon script appelait une version différente de Ruby.Le correctif pour moi était d'utiliser la
env
commande pour appeler le Ruby spécifié dans le shell actuelPATH
. La modification de la ligne supérieure du script a résolu le problème:#!/usr/bin/env ruby
la source
bundle install
installé les gemmes (et leurs extensions natives) pour un ruby sélectionné via le sélecteur RVM Ruby, où un script faisant référence au système Ruby ne peut pas les trouver. Votre solution est la pratique standard pour faire fonctionner les scripts et les gemmes Ruby avec les rubis installés par l'utilisateur ( voir ).apt purge tmuxinator
et ensuitegem install tmuxinator
fait fonctionner. Je vais probablement devoir l'installer par gemme chaque fois que je mets à niveau ma version ruby hors projet, mais j'aime mieux ça. Merci!Exécution de Mac OS Catalina, brew et rbenv ...
Après avoir rencontré ce problème exact aujourd'hui et parcouru toutes les réponses ici, je suis finalement tombé sur une autre raison de cette erreur:
Ignoring nokogiri 1.10.7 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.7
Et bien sûr, le bijou vierge n'a pas fonctionné.
Mon problème était un codé en dur des variables d'environnement GEM_HOME et GEM_PATH qui remplaçaient rbenv.
Vérifiez donc que vous n'avez pas défini GEM_PATH et GEM_HOME dans ~ / .zshrc
la source
La désinstallation et la réinstallation de Vagrant fonctionnent également. Il y a un
unistall.tool
script bash inclus dans l'image .dmg du programme d'installation qui supprimera Vagrant.J'ai trouvé cette solution ici: Mise à jour des extensions Vagrant et Gems non intégrées
la source
J'ai eu le même problème et j'utilise rbenv. Pour une raison quelconque, mon paramètre global rbenv a disparu. Afin de résoudre ce problème, j'ai défini la version globale sur l'une de mes versions de rbenv ... par exemple:
rbenv global 2.5.1
la source
C'est également un problème lorsque vous développez sur Mac, puis créez une image Docker: https://forums.aws.amazon.com/thread.jspa?messageID=879802&tstart=0
la source
La suggestion de Libby de simplement commencer une nouvelle session terminale (qu'elle a commentée sur la réponse de Sebastian Kim) a fonctionné pour moi. Beaucoup plus rapide que tous les autres aussi, donc je voulais en faire une réponse pour qu'elle soit plus visible.
la source
Sur mon cas, j'essayais de courir
pristine --all
mais j'obtenais:Ensuite, j'ai supprimé le contenu
Users/{{user.name}}/.gem
alors que je devais l'exécuterbundle install --force
, il a tout réinstallé, puis la commande apristine --all
fonctionné comme prévula source
Cette solution a fonctionné pour moi pour RubyMine IntelliJ
J'avais deux terminaux différents utilisés et
RVM
etruby<Version>
.Solution:
J'ai dû passer à la version RVM pour que les erreurs disparaissent
Preferences>Languages&Frameworks>Ruby SDK
Les erreurs:
la source