2016-04-03 9 views
0

machte ich den Wechsel von RVM diesen guideline folgenden rbenv und jetzt kann ich bundler nutzen und reinen Rubin laufen, aber wenn ich bin/rails s laufen, bin/rails g model ModelName oder rails g model ModelName ich die folgenden Fehler:Mein Ruby Gems Pfad ist nach dem Wechsel von RVM nach Rbenv durcheinander?

Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring. 
/Users/home/Development/blogger/vendor/bundle/gems/json-1.8.3/lib/json/ext/parser.bundle: [BUG] Segmentation fault at 0x00000000000418 
ruby 2.1.4p265 (2014-10-27 revision 48166) [x86_64-darwin15.0] 

Es gibt auch Es folgt ein massiver Absturzbericht, aber ich habe mich entschieden, ihn nicht einzuschließen, weil er länger ist als die erlaubte StackOverflow-Postlänge, und ich denke nicht, dass er etwas Wertvolles aussagt.

Ich habe das gleiche mit Ruby 2.1.2 versucht und habe das gleiche Ergebnis. Ich habe auch gem install rubygems-update getan, die erfolgreich und gem pristine --all, der diesen Fehler bekommt:

ERROR: While executing gem ... (Gem::Exception) 
    Failed to find gems ["==all"] >= 0 

Hier ist das Ergebnis von gem env

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.2.2 
    - RUBY VERSION: 2.1.4 (2014-10-27 patchlevel 265) [x86_64-darwin15.0] 
    - INSTALLATION DIRECTORY: /Users/home/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0 
    - RUBY EXECUTABLE: /Users/home/.rbenv/versions/2.1.4/bin/ruby 
    - EXECUTABLE DIRECTORY: /Users/home/.rbenv/versions/2.1.4/bin 
    - SPEC CACHE DIRECTORY: /Users/home/.gem/specs 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-15 
    - GEM PATHS: 
    - /Users/home/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0 
    - /Users/home/.gem/ruby/2.1.0 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - https://rubygems.org/ 
    - SHELL PATH: 
    - /Users/home/.rbenv/versions/2.1.4/bin 
    - /usr/local/Cellar/rbenv/0.4.0/libexec 
    - /Users/home/.rbenv/shims 
    - /Users/home/.rbenv/bin 
    - /usr/local/bin 
    - /usr/bin 
    - /bin 
    - /usr/sbin 
    - /sbin 

Unter GEM WEGE, warum ist der Weg in 2.1.0 geht? Dies ist meine alte Version von Ruby, von der ich mir sicher bin, dass sie nicht mehr auf meiner Maschine ist. Es ist nicht unter rbenv versions aufgeführt. Ist das das Problem? Wie ändere ich den Edelsteinpfad und wofür ändere ich ihn?

ich die $ PATH in meinem Bash_profile

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile 

export PATH="$HOME/.rbenv/bin:$PATH" 
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi 

Mein .profile ist leer, und echo $PATH Ergebnisse in: /Users/home/.rbenv/shims:/Users/home/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

which ruby Ergebnisse in /Users/home/.rbenv/shims/ruby

Ein weiteres Problem ist, wenn ich versuche, Um den bundle Befehl in meinem Home-Verzeichnis zu verwenden, erhalte ich Could not locate Gemfile or .bundle/ directory , obwohl Bündler in meiner Edelsteinliste enthalten ist.

Ich habe versucht, Ruby mindestens dreimal zu deinstallieren und neu zu installieren, und ich bekomme jedes Mal die gleichen Fehler. Wieder einmal glaube ich, dass das Problem bei meinem GEM PATH liegt, aber ich habe nicht genug Erfahrung, um zu wissen, wie ich es beheben kann. Vielen Dank.

+0

Die GEM_PATHs sind ein Red Hering. Gems für jede x.y-Version von Ruby werden im selben Verzeichnis gespeichert. –

+0

Aber wenn ich 2.1.2 oder 2.1.4 verwende sollte 2.1.0 am Ende meines GEM_PATH sein? Ich bin mir nicht sicher, was sonst noch falsch sein könnte. – usernm

+0

Ja sollte es. Das war der Punkt meines Kommentars. Ich verwende 2.2.4, und meine Pfade haben "2.2.0" an allen Orten, wo Sie "2.1.0" haben. Leider weiß ich auch nicht, was sonst noch falsch ist. Sie müssen es mehr charakterisieren und Ihre Frage aktualisieren. –

Antwort

1

Stellt sich heraus, die Lösung war nur meine Schienen-Projekt zu löschen und eine neue starten. Ich habe auch meine Edelsteine ​​deinstalliert und neu installiert, und rbenv rehash vor dem Erstellen eines neuen Projekts. Ich dachte mir, ich sollte eine Antwort posten und nicht nur die Frage löschen, weil ich nicht sah, löschen und Remails die App rails in anderen Antworten auf die paar Fragen zu diesem Fehler da draußen.

+0

sieht aus wie du entweder deine rbenv installation oder die vorhergehende Gemfile/Gemfile.lock wurde abgespritzt. Guter Versuch der Selbstfixierung – prusswan

+0

@usernm Wie genau haben Sie die Edelsteine ​​deinstalliert? Ich glaube nicht, dass das Löschen eines Rails-Projekts das Problem behebt? Ich denke, es ist das gleiche wie nur den Lieferantenordner zu löschen? – Linus

0

@usernm ... Ich denke, Sie sollten eine GEMFILE in Ihrem Verzeichnis haben. Das Problem ist ziemlich verwirrend. Versuchen Sie einfach, ruby 'version' in der obersten Zeile hinzuzufügen. Ich hoffe, das ist eine Option, die man sich ansehen sollte. Nun Beispiel wäre:

ruby '2.1.4'

+0

Ich habe das vermisst, aber es machte keinen Unterschied. – usernm

+0

verwenden Sie den Paketinstallationsbefehl, um die Gemlist zu aktualisieren. du siehst edelstein makellos - alles ist passiert, wenn es in einer neuen installation nach der gespeicherten gemfile sucht. und wenn es dann nicht klappen kann, dann fange ich an, es wieder zu installieren. also versichere mir nur, dass du den Befehl package install verwendest? –

+0

Ich benutze Bundle-Installation. Ich habe es einfach gemacht, um sicherzugehen. Ich bekomme immer noch das Juwel pristine --all prompt jedes Mal – usernm