2016-03-21 20 views
3

Ich bin auf Linux Mint 17.2. Ich habe Ruby kürzlich mit entfernt.rbenv: Gem Befehle sind nicht auf Linux gefunden Mint

Ich habe dann installiert rbenv und dann tat rbenv install 2.3.0 so jetzt, ~/.rbenv/versions/2.3.0/bin/ruby existiert.

Aber jetzt kann ich nicht gem install rubocop tun. Ich bekomme diese:

$ gem install rubocop 
rbenv: gem: command not found 

The `gem' command exists in these Ruby versions: 
    2.3.0 

Aber ich kann ~/.rbenv/versions/2.3.0/bin/gem install rubocop tun. Allerdings, wenn ich fertig bin, kann ich es nicht verwenden:

$ rubocop --auto-correct 
-bash: /usr/local/bin/rubocop: /usr/bin/ruby1.9.1: bad interpreter: No such file or directory 

Ich kann auch nicht herausfinden, wo dieser Rubin kam aus:

$ dpkg -S /usr/bin/ruby1.9.1 
dpkg-query: no path found matching pattern /usr/bin/ruby1.9.1 

möglich Es ist es über RVM installiert wurde vor langer Zeit.

Irgendeine Idee, wie ich meinen Ruby reparieren kann?

Antwort

10

versuchen rbenv global 2.3.0 && rbenv rehash

+0

Danke Mike. Das hat für mich funktioniert. Können Sie bitte eine Erklärung für Ihre Antwort geben? Ich würde gerne wissen, was ich falsch gemacht habe. – Housni

+2

Sie sollten Ruby Version vor der Verwendung auswählen, und Sie installieren es nur, aber nicht ausgewählt. Und auch, nach größeren Operationen 'rbenv rehash' um rbenv status zu aktualisieren –

+0

Wie ich es verstehe, jedes Mal, wenn Sie ein Juwel installieren, das nativen Code baut, müssen Sie rbenv rehash ausführen, um die Shell-Magie auf dieses neue Juwel zu aktualisieren. Dies ist etwas, das Sie einen Haufen stolpern kann, wenn Sie es vergessen. –

4

läuft Es sieht aus wie Sie nicht die rbenv Shell Magie ausgeführt haben sind Beilagen zu Ihrem Pfad hinzuzufügen.

export PATH="$HOME/.rbenv/bin:$PATH" 
eval "$(rbenv init -)" 

Es wird empfohlen, auf Ihre .bashrc hinzuzufügen oder .bash_profile so dass es bei der Anmeldung ausgeführt wird.

Lesen Sie this - es deckt Rbenv und Bundler aber die erste Einrichtung wird sein, was Sie brauchen, um zu betrachten.

+0

Dies ist, was ich anfangs auch dachte, aber ich habe den erforderlichen Inhalt in meinen RC-Dateien. Ich habe sie sogar ein paar Mal beschafft, um sicherzustellen, dass die erforderlichen Pfade in $ PATH sind. Mikes Lösung funktionierte für mich. Danke, dass du dir die Zeit genommen hast, zu antworten! – Housni

+0

Froh, dass du es sortiert hast :) – mcfinnigan

+0

'if what rbenv>/dev/null; dann eval "$ (rbenv init -)"; fi' ist sicherer für die Eval-Linie. – voidstate

Verwandte Themen