2012-11-17 5 views
5

Ich bin absolute Neuling in Ruby and Rails-Projekt, so tut mir leid, wenn das dumme Frage ist.Probleme mit heroku toolbelt

Ich habe Heroku Toolbelt mit wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh installiert. Auch ich habe versucht gem install heroku. Aber wenn ich schreibe:

[email protected]:~$ heroku version 
<internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError) 
    from <internal:gem_prelude>:1:in `<compiled>' 

Ich habe in Google überprüft und die Menschen legen nahe, dass Juwel und aktuelle Rubin gibt verschiedene Versionen, damit ich es überprüft haben und sie scheinen auf das gleiche:

[email protected]:~$ which ruby 
/home/MY_USER/.rvm/rubies/ruby-1.9.3-p327/bin/ruby 

[email protected]:~$ gem env | grep 'RUBY EXECUTABLE' 
    - RUBY EXECUTABLE: /home/MY_USER/.rvm/rubies/ruby-1.9.3-p327/bin/ruby 

I habe keine Ahnung, was ich mehr tun soll, also bitte helfen.

Sorry für die vielleicht dumme Frage, danke im Voraus.

EDIT: Vergessen zu sagen, dass ich Ubuntu 12.10 laufen lasse.

+1

Versuchen Sie, '' Ruby ', die Heroku' Version'..was passiert dann? Beachte die Backticks um 'which heroku'. – Casper

+0

'MY_USER @ home-PC: ~ $ ruby ​​\' welche heroku \ 'version' zurückgibt: ' heroku-toolbelt/2.33.1 (i686-linux) ruby ​​/ 1.9.3' – suricactus

Antwort

17

Das Problem ist, dass die heroku ausführbare Sie wahrscheinlich mit einer Zeile wie diese beginnt installiert:

#!/usr/bin/ruby 

Dies wird den heroku Befehl zwingen, immer die systemweite Rubin verwenden (/usr/bin/ruby) und es wird nie laufen Ihre rvm-Version von Ruby.

Um es zu beheben einfach die erste Zeile der dieses heroku Skript bearbeiten:

Diese
#!/usr/bin/env ruby 

den heroku Befehl ausgeführt machen je nachdem, was Rubin Befehl im aktuellen PATH ist, anstelle eines Pfades hart codiert wie zuvor .

Um die Position des heroku Skript zu finden, so können Sie es bearbeiten, geben Sie einfach:

which heroku 

... auf der Kommandozeile. Es sollte den Speicherort des Skripts ausdrucken, damit Sie es finden und in Ihren Editor laden können.

+0

Danke, ich verstehe ganz, was Sie bedeutet aber '\' whick hereku \ '' gibt den gleichen Fehler zurück : 1: in \ 'require \': kann keine solche Datei laden - rubygems.rb (LoadError) von : 1 : in ' ''. Also suche ich die Datei in Nautilus und finde 'heroku' Datei in'/usr/local/heroku/bin', die erste Zeile ist '#!/Usr/bin/env ruby1.9.1'. Ich habe es in '#!/Usr/bin/env ruby' geändert, was jetzt zu funktionieren scheint. Vielen Dank, jetzt kann ich versuchen, diese Sprache zu lernen. Danke noch einmal! – suricactus

+0

@ erik1001 Ok. Danke und tut mir leid mein schlechtes. Ich habe die Antwort bearbeitet ('welches Heroku hätte ohne die Backticks laufen sollen). Aber gut, dass du es trotzdem geschafft hast. Viel Glück mit Rubin. – Casper

+0

Manchmal kann die erste Zeile stattdessen etwas wie '/ usr/bin/env ruby1.9 sein.1 ', (einschließlich' env' bereits darin), aber es noch zu '/ usr/bin/env ruby' editieren (einfach nur' ruby' und keine Version) sollte es mit rvm funktionieren lassen. –

0

Auch wenn Sie Sie eingeben können, keine Schreibberechtigung haben:

erfolgreich
:w !sudo tee % > /dev/null 

zu speichern.