Question

J'ai installé RVM avec Ruby Versions. Cependant, si je lance la console et exécute le serveur de rails de commande, l'installation du bundle, etc. Je reçois cette erreur

bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file or directory

Mais si je cours rvm use 1.9.2 Tout d'abord, alors tout va bien. J'ai essayé d'utiliser `RVM Use --Default 1.9.2 'mais rien n'a changé. Cela signifie-t-il qu'il utilise un rubis différent de ceux de RVM? Merci d'avance!

Était-ce utile?

La solution

Explication des dossiers et du chemin des bacs Rubygems

Oh. Vous n'aviez pas des rails installés dans votre RVM Ruby, mais vous l'avez fait dans votre système Ruby.

Des joyaux individuels, comme rails peut avoir un bin répertoire qui contiendra des scripts d'assistance exécutables. RubyGems par défaut de votre système fait des symbseaux de votre système / usr / bin / dir dans les gemmes bin dossier pour ces exécutables d'assistance.

RVM fournit une installation similaire, sauf au lieu de polluer le système / dirt USR / bin, il ajoute simplement son ~/.rvm/gems/#{rvm_gemset_string}/bin dossier à la variable d'environnement de chemin.


Importation du système Rubygems Liste dans les répertoires GEM de vos nouveaux RVM

RVM par défaut n'importera pas vos gemmes à partir de votre installation Ruby System dans vos installations RVM Ruby. Il fait une fourche complète de l'ensemble du système Ruby, y compris Rubygems (la liste des gemmes «Rubygems») et Rubygems. Lorsque vous rvm install 1.9.2 C'est comme si vous aviez fait une toute nouvelle installation de tout ce qui est utilisé avec Ruby.

Si vous souhaitez obtenir tous vos gemmes Ruby System que vous utilisiez auparavant dans votre RVM Ruby préféré, essayez ceci:

  rvm use system
  rvm gemset export system.gems
  rvm use 1.9.2
  rvm gemset import system.gems
  #You'll now have all your system gems reinstalled to your new ruby version

Réponse originale / modifications de @telemachus

Essayez de déplacer les lignes qui s'approvisionnent RVM à la fin de votre ~/.bash_profile ou ~/.bashrc (quel que soit le fait que vous l'avez):

'[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function'

.

bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file ...
|                 |                 ^--------------------------------\
^ Bash, not rvm;  ^/usr/bin/rails, not ~/.rvm/gems/*/bin/rails;      |
                       Some ruby leftover from a previous install in the os

Vous avez des rails installés dans /usr/bin, qui est probablement avant le chemin RVM Ruby Bin dans votre bash echo $PATH Variable, il s'agit donc de trouver l'installation des rails système (/ usr / bin / rails, un script rubis) qui commence comme ceci:

#! /usr/bin/ruby18

Vous devez faire en sorte que le conflit s'arrête, le meilleur de toutes les manières possibles est de vous assurer que le bin dir de RVM est au début de votre chemin. Cela se produit dans le #Load rvm environment script que vous avez ajouté à votre ~/.bash_profile Lors de l'installation de RVM. Si vous avez installé RVM en tant que bibliothèque système plutôt que pour votre utilisateur, ce sera différent.

Si vous arrivez à ce cas, demandez @telemachus.

Vous devrez alors vous assurer que vous avez installé le gemme Rails dans votre nouveau RVM Ruby comme ci-dessus.

Test d'admission:

Vous trouverez cela lorsque vous aurez terminé rvm use 1.9.2, alors which ruby retournera quelque chose comme ~/.rvm/rubies/1.9.2/bin/ruby, et which rails devrait retourner quelque chose comme ~/.rvm/gems/*/bin/rails.

Autres conseils

J'ai juste résolu le même problème sur les fenêtres Vue.

Ma console me donnait ce message:

$ rails -v
sh: /c/RailsInstaller/Ruby1.9.2/bin/rails: C:/Projects/railsinstaller/Stage/Ruby1.9.2  /bin/ruby.exe: bad interpreter: No such file or directory

Je viens de modifier la première ligne de ce fichier:

C:\RailsInstaller\Ruby1.9.2\bin\rails

Et a fait en sorte que le bon emplacement pour Ruby.exe, sur mon système, comme ceci:

#!C:\RailsInstaller\Ruby1.9.2\bin\ruby.exe

Et voilà, problème résolu!

Vous devez courir rvm use --default 1.9.2, pas seulement rvm use --default.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top