rbenv ne pas changer de version de ruby
J'ai installé rbenv selon le github directions. Je suis sous OSX, mais j'ai essayé sur un Ubuntu 12.04 VM et obtenu les mêmes résultats. Voici ce que je reçois dans mon terminal lorsque je tente de changer ruby versions:
rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125
rbenv global
1.9.3-p0
rbenv rehash
ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
which ruby
/usr/bin/ruby
N'importe qui ont des idées pour lesquelles rbenv n'est pas de commutation de la version de ruby comme il pense qu'il est? Aussi il n'est pas .rbenv fichier dans le répertoire local qui pourrait causer la version de ruby à défaut de 1.8.7
rbenv local
rbenv: no local version configured for this directory
- Avez-vous définitivement mis l'init dans votre bashrc correctement? Quel est votre $PATH ressembler?
- Aucune de ces commandes de changement de la version de Ruby rbenv est à l'aide, mais il semble qu'il ne l'utilise pas par défaut de votre Ruby.
- était correcte. il n'était pas dans mon ~/.bash_profile correctement apparemment.
Vous devez vous connecter pour publier un commentaire.
Vérifiez que le CHEMIN d'accès contient $HOME/.rbenv/cales et $HOME/.rbenv/bin
Vérifiez également que vous avez les éléments suivants dans votre ~/.bash_profile si vous utilisez bash ou ~/.zshenv si l'aide de zsh
NOTE:
Assurez-vous que c'est le dernier paramètre dans votre ~/.bash_profile . J'ai couru dans un problème où j'ai installé un programme mis à jour mon .bash_profile et réinitialiser CHEMIN.
source
commandeexec $SHELL -l
(en bas L)export RBENV_ROOT="$HOME/.rbenv" if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
plutôt bien 🙂 Aussi vérifier le CHEMIN d'init après rbenv déclaration.Cela peut être une vieille question, mais Google m'a amené ici, et, pour la postérité souci, j'ai pensé partager.
Mon problème a persisté après de nombreuses solutions recommandées ci-dessus. Comme l'OP, j'ai installé rbenv, puis une version de ruby, mais mon portable par défaut du système. Ce qui m'avait échappé, c'est que quand j'ai couru:
OIE, il était encore défaut au système. Un rapide
commuté sur la nouvelle version.
J'ai résolu ce problème en ajoutant ce qui suit à mon ~/.bash_profile:
C'est ce qui est documenté à https://github.com/sstephenson/rbenv.
De ce que je peux dire, il y a pas de ~/.rbenv répertoire/bin, ce qui a été mentionné dans le post de @rodowi.
export PATH="$HOME/.rbenv/bin:$PATH
(comme il n'était pas pour moi)?~/.rbenv/bin/
si vous avez installé via homebrew ou linuxbrew. Et vous ne devriez pas avoir à configurer les cales chemin vous-même, commerbenv init
est-ce (et plus) pour vous.Première étape est de savoir qui ruby est appelé à:
which ruby
Votre système dit:
/usr/bin/ruby
Ce n'est PAS la cale utilisée par rbenv, qui (sous MacOS) devrait ressembler à:
/Users/<username>/.rbenv/shims/ruby
La cale est en fait un script qui agit comme une redirection vers la version de ruby, vous définissez.
rbenv global 1.9.3
rbenv local --unset
rbenv shell --unset
Je recommande pour le dépannage vous enlevez le projet spécifique "local" de la version, et la coque spécifique "shell" version d'essai à l'aide de la "global" de la version de réglage qui est déterminé dans un fichier de texte brut dans ~/.rbenv/version qui sera juste le numéro de version 1.9.3" dans votre cas. Vous pouvez le faire "ls -laG" dans la racine du dossier de votre projet (pas le dossier de base) pour vous assurer qu'il n'est plus ".ruby-version" fichier.
Vous pouvez utiliser "rbenv versions" pour identifier la version rbenv est à utiliser (et l'emplacement et le nom du fichier en paramètre).
rbenv versions
N'a plus D'importance: jusqu'à ce que vous définissez le chemin d'accès correctement.
L'utiliser pour faire certain que votre *MacOS ne vous obéir:
eval "$(rbenv init -)"
Suivie par:
which ruby
Pour s'assurer qu'il ressemble:
/Utilisateurs//.rbenv/cales/ruby
Puis ajoutez-la à votre profil, de sorte qu'il s'exécute à chaque fois que vous ouvrez une nouvelle fenêtre de terminal:
~/.bash_profile
eval "$(rbenv init -)"
Il y a d'autres façons de modifier le chemin d'accès, n'hésitez pas à remplacer l'un d'eux au lieu de l'exécution de la rbenv init.
NOTE: réinstallation de Rails avec:
gem install rails
Si vous essayez d'exécuter Ruby on Rails, alors vous avez besoin d'avoir tout cela en travaillant d'abord, puis installer la gem rails de nouveau. Une précédente installation de Rails utiliser une codés en dur chemin de la trompe de rubis et de plusieurs autres choses seront au mauvais endroit, donc il suffit d'installer le gem de nouveau.
P. S. Si votre MacOS ne pas vous obéir (*mentionné ci-dessus), alors vous pourriez avoir à trouver une autre façon de modifier votre chemin, mais c'est peu probable d'être un problème, parce que "Mac juste travail" 😉
Je viens de trouver ce même problème. Ce que j'ai fait a été de désinstaller rbenv (via homebrew) et de le réinstaller. J'ai également ajouté
dans ~/.bash_profile quand j'ai réinstallé rbenv. Fonctionne parfaitement maintenant.
Dans mon cas, la modification de la
~/.zshenv
n'a pas de travail. J'ai dû faire des changements à l'intérieur~/.zshrc
.J'ai juste ajouté:
en haut de
~/.zshrc
, redémarré le shell et déconnecté.Vérifier si cela a fonctionné:
Exécuter cette commande
Ajouter rbenv bash afin qu'il se charge chaque fois que vous ouvrez un terminal
cela permettra de résoudre votre problème Référence
rbenv help shell
"Définit une coque spécifique à la version de Ruby en réglant le RBENV_VERSION' variable d'environnement dans votre shell. Cette version remplace localapplication des versions et la version internationale. devrait être une chaîne de caractères correspondant à un Ruby version connue de rbenv.La version spéciale de la chaîne du "système" par défaut sera utilisé le système de Ruby. Exécuter rbenv versions " pour une liste de versions Rubis."
Fourni rbenv a été installé correctement, ruby-v correspond à
rbenv shell 1.9.3-p125
J'ai eu le même problème, mais provoquée par l'Homebrew:
De toute façon je l'avais installé Ruby via Homebrew trop, et le Homebrew chemin à la veille de la rbenv chemin dans mon
$PATH
. L'exécution debrew uninstall ruby
fixe pour moi.J'en suis venu à le même problème.
Fixée par le "rbenv mondial de la commande "sudo".
Je pense que c'était quelque chose de problème d'autorisation.
mise à jour:
J'ai enfin trouvé la solution.
Il y a un même fichier "version" sur mon mac, ce qui est dans "/usr/local/Cave/rbenv/0.3.0/".
Je pense qu'il a été créé par erreur de temps en temps. vous devez le supprimer.
Quand j'ai eu ces symptômes, le problème s'est avéré être que l'installation a échoué à mi-chemin par le biais de la nouvelle version de Ruby, j'ai été essayant de passer, sans m'en aperçoive. La solution était de supprimer & le réinstaller.
(Cela signifie que même si ruby 1.9.3 a montré dans le rbenv liste des versions disponibles, il n'est pas un exécutable sur le chemin où rbenv supposé qu'il le ferait. Depuis rbenv essaie de modifier votre version de ruby juste en ajoutant un emplacement sur votre chemin, si il n'y a rien fait dans l'emplacement, il ajoute, vos OS seront heureux de continuer à chercher votre chemin d'accès par défaut et de trouver la version de votre système, dans mon cas, comme la question de la 1.8.7.)
Que pour moi le moyen le plus facile à utiliser
rbenv
aveczsh
est l'ajout derbenv
à la section plugins dans.zshrc
config. Dans mon cas, il ressemble à:Après qu'il n'y a pas de problèmes lors de l'installation, de la commutation, à l'aide de ruby versions avec l'aide de
rbenv
.L'esprit de redémarrer votre session de terminal après avoir apporté des modifications.
pour les poissons shell de l'utilisateur
Ce qui m'est arrivé juste après que j'ai réinstallé
rbenv
. Apparemment, j'ai eu un.ruby-version
fichier dans mon répertoire home, la spécification d'une version qui n'existait plus. Une fois que j'ai supprimé le fichier, tout a fonctionné.Assurez-vous que la dernière ligne de votre
.bash_profile
est:exécuter:
Après j'ai couru que, lorsque j'ai mis mon local rbenv version:
puis mon
ruby -v
et monrbenv local
versions coïncidé.Remarque: Vous pouvez également quitter le répertoire que vous êtes dans et puis revenir vers elle, et j'ai remarqué qui m'était nécessaire pour obtenir des choses à travailler.
Étrangement, rbenv version n'a pas défini l' .rbenv fichier
Vérifiez auprès de: ls -arlt --> pour voir qu'un rbenv a été écrit
Vous pouvez essayer d'utiliser chruby? chruby ne repose pas sur des cales, au lieu de cela, il modifie seulement
PATH
,GEM_HOME
,GEM_PATH
.Si vous utilisez bash, allez à la
et ajouter la ligne suivante (si elle n'est pas déjà)
Si vous utilisez Zsh, allez à la
et ajouter la même ligne de code, à la fin de l' .zshrc fichier.
Ensuite, il suffit de redémarrer votre terminal et ça devrait être bon maintenant.
J'ai oublié de le supprimer avant d'installer rvm rbenv. J'ai supprimé rvm et ré-installé rbenv, mais le système n'était pas encore à l'aide de la version de Ruby être désigné comme global par rbenv. J'ai essayé de fermer le Terminal, mais il ne fonctionne qu'une fois que j'ai redémarré la machine dans son ensemble.