Beim Versuch, cap production deploy
Auszuführen, wird die folgende Fehlermeldung angezeigt.
DEBUG [dc362284] Bundler::GemNotFound: Could not find json-1.8.1.gem for installation
DEBUG [dc362284] An error occurred while installing json (1.8.1), and Bundler cannot continue.
DEBUG [dc362284] Make sure that `gem install json -v '1.8.1'` succeeds before bundling.
Es kann wichtig sein zu beachten, dass diese Bereitstellung funktioniert hat, als ich auf Ruby 2.1.0 aktualisiert habe, um einen Codierungsfehler zu entfernen. Ich habe lokal aktualisiert, was gut funktioniert hat. Ich habe rvm install 2.1.0
Ausgeführt. und rvm use 2.1.0
haben dann meine .Ruby-version
- Datei geändert, um dieses Ruby Upgrade zu berücksichtigen.
Der Befehl bundle install
Funktioniert lokal, erzeugt jedoch den gleichen Fehler wie oben, wenn ich auf den Zielserver ssh und diesen Befehl ausführe.
Wenn ich gem list
Ausführe, kann ich das in der Liste der Edelsteine sehen.
...
jquery-Rails (3.0.4)
json (1.8.1)
less (2.3.2)
...
Wenn ich die empfohlene Lösung gem install json -v '1.8.1'
Lokal und auf dem Zielserver versuche, erhalte ich die folgende Ausgabe:
Building native extensions. This could take a while...
Successfully installed json-1.8.1
Parsing documentation for json-1.8.1
Done installing documentation for json after 0 seconds
1 gem installed
Es scheint also, dass der Edelstein installiert ist, oder? Warum passiert das? Wie kann ich das lösen? Jede Hilfe wäre sehr dankbar.
Nach einem halben Tag und fast unmittelbar nach dem Posten meiner Frage fand ich die Antwort. Bundler 1.5.0 hat einen Fehler, bei dem Standard-Edelsteine nicht als hier referenziert erkannt werden
Die Lösung bestand darin, mit gem install bundler -v '= 1.5.1'
Auf Bundler 1.5.1 zu aktualisieren.
$ bundle update json
$ bundle install
Führen Sie diesen Befehl aus, dann ist alles in Ordnung
Sudo apt-get install libgmp-dev
wenn Sie in MacOS Sierra arbeiten und Ihre Ruby Version 2.4.0 ist. Die Ruby Version ist nicht kompatibel mit json 1.8.3.
Sie können versuchen, diese Zeile in Ihre Gemfile einzufügen:
gem 'json', github: 'flori/json', branch: 'v1.8'
Das funktioniert bei mir!
Um dieses Problem zu lösen, führen Sie einfach Folgendes aus:
bundle update
Es wird die Version Ihres Bundlers aktualisieren. Dann renne:
bundle install
Ihr Problem wird gelöst. Die Lösung ist gut erklärt hier.
Ich habe die Lösung gefunden hier . Es gibt ein Problem mit json Version 1.8.1 und Ruby 2.2.3, installieren Sie also die json 1.8.3 Version.
gem install json -v1.8.3
Du solltest es versuchen
$ Sudo gem install json -v '1.8.2'
in meinem Fall (Ubuntu 14.04) funktionierte das nicht direkt und ich musste dies tun:
$ Sudo apt-get install Ruby-dev
und dann könnte ich das gem installieren und weitermachen. Hatte noch ein Problem, das behoben wurde durch:
$ Sudo apt-get install libsqlite3-dev
Hoffen hilft.
Wenn die empfohlene Antwort nicht hilft, weil Sie bereits eine neuere Version von Bundler verwenden. Probieren Sie die Lösung aus, die für mich funktioniert hat.
Löschen Sie alles in Ihrem Lieferantenordner. Füge eine Zeile zu deinem Gemfile hinzu
gem 'json', '1.8.0'
Dann renne - bundle update json
.
Es scheint ein Problem mit 1.8.1 zu sein, also hat die Rückkehr zu 1.8.0 den Trick für mich getan.
Ich bin auf diesen Fehler gestoßen, als ich versucht habe, ein Projekt mit Sinatra und Postgresql (über activerecord) auf meiner lokalen Dev-Box (OSX 10.6) zum Laufen zu bringen, auf einem rvm'd Ruby 2.1. Ich habe meine Antwort hier gefunden: https://github.com/wayneeseguin/rvm/issues/2511
Mein genaues Problem (nach dem ersten Block von Protokolleinträgen):
Ich erhalte auch eine Fehlermeldung, wenn ich versuche, native Erweiterungen für Edelsteine zu erstellen
Das Antwort :
rvm neu installieren 2.1.0 - Disable-Binary
Die Erklärung :
OSX hat keinen Paketmanager, daher müssen alle Bibliotheken manuell vom Benutzer installiert werden. Dies macht es praktisch unmöglich, die Binärdatei dynamisch zu verknüpfen. Wie Sie sehen, gibt es Probleme mit der (pseudo) statisch verknüpften Binärdatei.
Der Vollständigkeit halber hatte ich zunächst vergessen, rvm (rvm get head
) Zu aktualisieren, was einige andere Fehler verursachte, aber trotzdem das --disable-binary
- Flag benötigte, nachdem ich dies getan hatte.
bundle update json
. Geholfen, durchzukommen.
Als ich versuchte, das json gem mit gem install json
Zu installieren, anstatt nur bundle install
Zu verwenden, bekam ich ERROR: Failed to build gem native extension.
Und sah nach, was ich mit gefunden hatte
apt-get install Ruby-dev
hat den Trick gemacht
Stellen Sie unter OS X sicher, dass Sie coreutils haben
$ brew install coreutils
$ bundle
Dies scheint ein Fehler in Bundler zu sein, der die mit Ruby 2.x) installierten Standard-Gems nicht erkennt. Trotz der neuesten Version von Bundler (1.5.3) trat das Problem immer noch auf.
Eine Lösung besteht darin, einfach json-1.8.1.gemspec aus dem Standardverzeichnis gemspec zu löschen.
rm ~/.rubies/Ruby-2.1.0/lib/Ruby/gems/2.1.0/specifications/default/json-1.8.1.gemspec
Danach sollte der Bündler kein Problem damit haben, den Edelstein zu lokalisieren. Beachten Sie, dass ich Chruby verwende. Wenn Sie einen anderen Ruby Manager verwenden, müssen Sie Ihren Pfad entsprechend aktualisieren.
Bundle konnte json -v '1.8.1' nicht installieren und das Löschen meiner Gemfile.lock-Datei und das erneute Ausführen des Bundles lösten dieses Problem für mich.
Mir fehlte C-Header-Lösung, um es für Xcode herunterzuladen, das ist der beste Weg.
xcode-select --install
Ich hoffe es hilft.
Ich habe die neueste Version von json installiert:
gem install json
Dann löschte die Zeile json (1.8.1) aus dem Gemfile.lock und tat a
bundle install
Und dann verwendet die Gemfile.lock-Datei json (1.8.3) ohne Fehler
Für macOS Sierra:
Ich bin auf diesen Fehler gestoßen, als ich bundler (v1.15.3
) in Rails (v4.2
) Projekt. Die Lösung für mich ist gem uninstall bundler -v '1.15.3'
und gem install bundler -v '1.14.6'
.
Für mich waren einige der zuvor erwähnten Antworten aus Sicht des Verständnisses hilfreich, aber diese lösten mein Problem nicht.
Das habe ich also getan, um das Problem zu lösen.
Bundler -v
Befehl). Ich hatte Version 1.12.5 installiertgem install bundler -v '1.11.2'
)Switch Ruby Version von 1.9 auf 2.2 mit rvm hat den Job für mich erledigt