J'ai installé rbenv selon les instructions de github. Je suis sous OSX, mais j’ai essayé cela sous Ubuntu 12.04 VM et j’ai eu les mêmes résultats. Voici ce que je reçois dans mon terminal lorsque j'essaie de changer de version de Ruby:
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
Quelqu'un a-t-il une idée quant à la raison pour laquelle Rbenv ne modifie pas la version Ruby comme il le pense? De plus, il n'y a pas de fichier .rbenv dans le répertoire local qui ferait passer la version de Ruby à la version 1.8.7
rbenv local
rbenv: no local version configured for this directory
Vérifiez que PATH contient $ HOME/.rbenv/shims et $ HOME/.rbenv/bin
$ env | grep PATH
Vérifiez également que vous avez les éléments suivants dans votre ~/.bash_profile si vous utilisez bash ou ~/.zshenv si vous utilisez zsh
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Remarque: Assurez-vous que c'est le dernier paramètre de votre ~/.bash_profile. J'ai rencontré un problème où j'ai installé un programme qui a mis à jour mon fichier .bash_profile et réinitialisé PATH.
C'est peut-être une vieille question, mais Google m'a amené ici et, pour des raisons de postérité, je pensais le partager.
Mon problème a persisté après plusieurs des solutions recommandées ci-dessus. À l'instar de l'OP, j'ai installé rbenv, puis une version Ruby, mais mon ordinateur portable est configuré par défaut sur le système. Ce que j'avais oublié c'est que quand j'ai couru:
[~/.rbenv] $ rbenv versions
* system (set by /Users/alphadogg/.rbenv/version)
2.0.0-p247
IOW, il était toujours défaut au système. Un rapide
[~/.rbenv] $ rbenv local 2.0.0-p247
basculé vers la nouvelle version.
J'ai résolu ce problème en ajoutant ce qui suit à mon ~/.bash_profile:
#PATH for rbenv
export PATH="$HOME/.rbenv/shims:$PATH"
C’est ce qui est documenté sur https://github.com/sstephenson/rbenv .
D'après ce que je peux dire, il n'y a pas de répertoire ~/.rbenv/bin, mentionné dans le message de @rodowi.
Je viens de trouver ce même problème. Ce que j'ai fait était de désinstaller rbenv (via homebrew) et de le réinstaller. J'ai aussi ajouté
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
dans ~/.bash_profile quand j'ai réinstallé rbenv. Fonctionne parfaitement maintenant.
Dans mon cas, changer le ~/.zshenv
n'a pas fonctionné. Je devais faire les changements à l'intérieur de ~/.zshrc
.
Je viens d'ajouter:
# Include rbenv for ZSH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
en haut de ~/.zshrc
, a redémarré le shell et s'est déconnecté.
Vérifiez si cela a fonctionné:
➜ ~ rbenv install 2.4.0
➜ ~ rbenv global 2.4.0
➜ ~ rbenv global
2.4.0
➜ ~ Ruby -v
Ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
Exécuter cette commande
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile
cela résoudra votre problème Référence
J'ai eu le même problème, mais causé par Homebrew:
[~]$ rbenv version
2.3.0 (set by /Users/user/.rbenv/version)
[~]$ Ruby -v
Ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
[~]$ which Ruby
/usr/local/bin/Ruby
D'une manière ou d'une autre, j'avais également installé Ruby via Homebrew et le chemin Homebrew était en avance sur le chemin rbenv dans mon $PATH
. Courir brew uninstall Ruby
l'a corrigé pour moi.
rbenv help Shell
"Définit une version Ruby spécifique au shell en définissant la variable d'environnement 'RBENV_VERSION' dans votre shell. Cette version remplace les versions spécifiques à l'application locale et la version globale. Doit être une chaîne correspondant à une version Ruby connue par rbenv.La version spéciale chaîne 'système "utilisera votre système par défaut Ruby. Exécutez les versions de rbenv" pour obtenir une liste des versions disponibles de Ruby. "
Si rbenv a été installé correctement, Ruby -v correspondra à
rbenv Shell 1.9.3-p125
Je suis arrivé au même problème . Corrigé ceci en exécutant la commande "rbenv global" avec "Sudo" . Je pense que c'était quelque chose de problème de permission.
update: J'ai finalement trouvé la solution . Il y avait un même fichier "version" sur mon mac, qui se trouve sous "/usr/local/Cellar/rbenv/0.3.0/".Je pense il a été créé par erreur de temps en temps. vous devriez l'enlever.
Lorsque j'ai eu ces symptômes, le problème s'est avéré que l'installation avait échoué à mi-parcours pour la nouvelle version de Ruby vers laquelle je tentais de passer, sans que je m'en rende compte. Le correctif était de le supprimer et de le réinstaller.
(Cela signifiait que même si Ruby 1.9.3 apparaissait dans la liste des versions disponibles de rbenv, il ne possédait pas d'exécutable sur le chemin où rbenv l'avait supposé. Puisque rbenv essaie de changer votre version de Ruby simplement en ajoutant un emplacement à votre chemin, s'il n'y a rien dans l'emplacement qu'il a précédé, votre système d'exploitation continuera volontiers à rechercher votre chemin par défaut et à trouver la version de votre système, dans mon cas comme dans la question 1.8.7.)
Cela m'est arrivé juste après avoir réinstallé rbenv
. Apparemment, j'avais un fichier .Ruby-version
dans mon répertoire personnel, spécifiant une version qui n'existait plus. Une fois que j'ai supprimé le fichier, tout a fonctionné.
Quant à moi, la manière la plus simple d’utiliser rbenv
avec zsh
est d’ajouter rbenv
à la section plugins dans .zshrc
config. Dans mon cas, cela ressemble à:
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(Rails git textmate Ruby lighthouse)
# Add wisely, as too many plugins slow down Shell startup.
plugins=(git bower Rails Ruby rbenv gulp npm node nvm sublime)
Après cela, il n’ya plus de problèmes lors de l’installation, du changement, de l’utilisation des versions de Ruby avec l’aide de rbenv
.
Pensez à redémarrer votre session de terminal après les modifications.
Assurez-vous que la dernière ligne de votre .bash_profile
est:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
pour les utilisateurs de poisson
set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims/
courir:
rbenv init
Après avoir exécuté cela, lorsque j'ai défini ma version locale de Rbenv:
rbenv local 2.4.0
alors mes versions Ruby -v
et rbenv local
ont coïncidé.
Remarque: Vous voudrez peut-être aussi quitter le répertoire dans lequel vous vous trouvez, puis y revenir. J'ai remarqué que cela était nécessaire pour que les choses fonctionnent.
Étrangement, la version de rbenv n’a pas défini le fichier .rbenv Vérifiez auprès de: ls -ltra -> pour vérifier qu’un rbenv a été écrit.
Vous pouvez essayer d'utiliser chruby ? chruby ne s'appuie pas sur des cales, il ne modifie que PATH
, GEM_HOME
, GEM_PATH
.
Si vous utilisez bash , allez à
~/.bash_profile
et ajoutez la ligne suivante (si ce n'est déjà fait)
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
Si vous utilisez Zsh, allez à
~/.zshrc
et ajoutez la même ligne de code, à la fin du fichier .zshrc.
Ensuite, redémarrez simplement votre terminal et tout devrait bien se passer maintenant.