web-dev-qa-db-fra.com

rbenv ne change pas la version de Ruby

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
203
ajorgensen

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.

401
rodowi

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.

81
alphadogg

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.

77
mjmdavis

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.

21
Neal

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]
9
Peter Piper

Exécuter cette commande

Ajoutez rbenv à bash pour qu'il se charge chaque fois que vous ouvrez un terminal

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

6
Singhak

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.

4
djb

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

4
htmldrum

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.

3
Vincent

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.)

3
David

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é.

2
John K. Chow

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.

2
Rootical V.

Assurez-vous que la dernière ligne de votre .bash_profile est:

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

pour les utilisateurs de poisson

set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims/
1
Basil Mariano

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.

1
AmitF

É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.

0
poseid

Vous pouvez essayer d'utiliser chruby ? chruby ne s'appuie pas sur des cales, il ne modifie que PATH, GEM_HOME, GEM_PATH.

0
postmodern

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.

0
drjorgepolanco