Dies geschieht alle paar Tage, wenn Sie verschiedene Aufgaben in Ruby CLI (insbesondere mit dem knife
Dienstprogramm für Chef) unter OS X ausführen (Replikation in anderen Umgebungen nicht möglich; Linux, FreeBSD usw.):
Ignoring bcrypt-3.1.7 because its extensions are not built. Try: gem pristine bcrypt-3.1.7
Ignoring bigdecimal-1.2.5 because its extensions are not built. Try: gem pristine bigdecimal-1.2.5
Ignoring ffi-yajl-1.1.0 because its extensions are not built. Try: gem pristine ffi-yajl-1.1.0
Ignoring gem-wrappers-1.2.5 because its extensions are not built. Try: gem pristine gem-wrappers-1.2.5
Ignoring gem-wrappers-1.2.4 because its extensions are not built. Try: gem pristine gem-wrappers-1.2.4
Ignoring pg-0.17.1 because its extensions are not built. Try: gem pristine pg-0.17.1
Ignoring psych-2.0.6 because its extensions are not built. Try: gem pristine psych-2.0.6
Ignoring sqlite3-1.3.9 because its extensions are not built. Try: gem pristine sqlite3-1.3.9
Und während es eine einfache Lösung ist, passiert es immer wieder. Ist das schon mal jemandem begegnet?
$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin11.2.0]
bundle install
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory
, diese Probleme haben von alleine angefangen, ich benutze nicht einmal Ruby für alles was ich weiß. Aber ich bekomme Fehler über Erweiterungen, die nicht erstellt wurden,clocale-0.0.3
wenn ich eine neue ShellIn meinem Fall sehe ich diese Fehler nach der Installation
rvm
Ich löse ein solches Problem mit:
gem pristine --all
quelle
Dieses Problem tritt auf, wenn ein Gem mit einem anderen Libruby kompiliert wurde als dem aktuell ausgeführten. Zum Beispiel, wenn man einen Ruby verwendet, der sich mit chruby in seinem Home-Verzeichnis befindet, und Edelsteine in ~ / .gem / ruby installiert, aber ein Skript ausführt, das / usr / bin / ruby aufruft und die dort installierten Edelsteine wiederverwendet. In diesem Fall
gem pristine --all
hilft das nicht, da die Edelsteine nur gegen eine Rubinversion verknüpft werden können.quelle
vendor/bundle
, löschen Sie sie einfach mitrm -rf vendor/bundle
und installieren Sie sie erneut mitbundle install
.gem pristine --all
bis ich blau im Gesicht war und jetzt weiß ich, warum es nicht funktioniert hat ...Ich habe das behoben durch:
https://github.com/rvm/rvm/issues/3348
quelle
Das hat bei mir auf MacOs Sierra funktioniert:
Ich hatte bereits den gesamten xcode installiert, bevor die obigen Befehle ausgeführt wurden, musste dies aber trotzdem tun, möglicherweise, weil das erste Skript einige interne Bibliotheken / Abhängigkeiten aktualisiert.
quelle
Stellen Sie sicher, dass Sie "gem pristine - all" für die richtige Version von Ruby ausführen. Wenn / usr / bin / ruby aufgerufen wird ... benutze "/ usr / bin / gem pristine --all". Dies ist nicht offensichtlich, wenn Sie rvm verwenden und 10 Ruby-Versionen installiert haben.
Das hat mein Problem für einen Tag behoben und dann ist es zurückgekommen.
Eine dauerhaftere Lösung scheint "rvm reset" zu sein, damit der Standard-Ruby die installierte OSX-Version / usr / bin / ruby und / usr / bin / gem ist. Wenn ich eine neuere Version von Ruby für ein Projekt verwenden möchte, verwende ich .ruby-version und .ruby-gemset im Projektstammverzeichnis, um die Version von Ruby, die ich verwenden möchte, explizit festzulegen. Nicht ideal ... aber es sollte diesen Fehler beseitigen.
quelle
In meinem Fall:
rvm get stable
sudo gem pristine --all
quelle
Ich bin sehr neu auf Schienen, so dass dies völlig irreführende Ratschläge sein könnten, aber da keine der anderen Lösungen für mich funktionierte, dachte ich, ich würde meine teilen.
Mic92 und Gerry haben mich auf den richtigen Weg gebracht: Ich habe verwendet,
rails s
was zu Fehlern führen kann, da es eine Rails-Version ausführt , die eine andere Version als die des Projekts sein kann.Ich habe versucht, eine Verbindung
bin/rails server
herzustellen, es ist ein anderer Fehler aufgetreten (fehlende Edelsteine), also bin ich gelaufenbundle install
Zu diesem Zeitpunkt bekam ich einen dritten Fehler ("inkompatible Bibliotheksversion"), der
spring stop
behoben wurde.Dann bin ich
rails generate controller
wieder gelaufen , der Frühling hat wieder angefangen und alles hat funktioniert (ich habe ein bisschen geweint).quelle