J'ai installé rbenv selon les instructions de github. J'utilise OSX mais j'ai essayé cela sur une machine virtuelle Ubuntu 12.04 et j'ai obtenu les mêmes résultats. Voici ce que j'obtiens dans mon terminal lorsque j'essaie de changer les versions de rubis:
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 de pourquoi rbenv ne change pas la version ruby comme il le pense? De plus, il n'y a pas de fichier .rbenv dans le répertoire local qui entraînerait la version par défaut de ruby à 1.8.7
rbenv local
rbenv: no local version configured for this directory
Réponses:
Vérifiez que PATH contient $ HOME / .rbenv / shims 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 vous utilisez zsh
REMARQUE: assurez-vous qu'il s'agit du dernier paramètre de votre ~ / .bash_profile. J'ai rencontré un problème où j'ai installé un programme qui a mis à jour mon .bash_profile et réinitialisé PATH.
Enfin, assurez-vous que votre
$HOME
dossier ne contient pas de.ruby-version
fichier que vous pourriez avoir créé par accident si vous deviez l'avoir fait$ rbenv local <ruby-version>
dans votre$HOME
dossier. Faire$ rbenv global <ruby-version>' modifies the
$ HOME / .rbenv / versionfile, and the existence of a
.ruby-versionfile in the
$ HOMEfolder would override the version set by
$ HOME / .rbenv / version`.De la documentation:
la source
exec $SHELL -l
(inférieur L)export RBENV_ROOT="$HOME/.rbenv" if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
Fonctionne plutôt bien :) Vérifiez également les init de PATH après la déclaration rbenv.J'ai corrigé cela en ajoutant ce qui suit à mon ~ / .bash_profile:
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, qui a été mentionné dans le message de @rodowi.
la source
export PATH="$HOME/.rbenv/bin:$PATH
fonctionner (car cela a échoué pour moi)?~/.rbenv/bin/
si vous avez installé via homebrew ou linuxbrew. Et vous ne devriez pas avoir à configurer vous-même le chemin des cales, commerbenv init
cela (et plus) pour vous .C'est peut-être une vieille question, mais Google m'a conduit ici et, pour l'amour de la postérité, a pensé que je partagerais.
Mon problème a persisté après plusieurs des solutions recommandées ci-dessus. Comme l'OP, j'ai installé rbenv puis une version rubis, mais mon ordinateur portable est par défaut sur système. Ce que j'avais oublié, c'est que lorsque j'ai couru:
IOW, il faisait toujours défaut au système. Un rapide
passé à la nouvelle version.
la source
La première étape consiste à savoir quel rubis est appelé:
which ruby
Votre système dit:
/usr/bin/ruby
Ce n'est PAS le shim utilisé par rbenv, qui (sous MacOS) devrait ressembler à:
/Users/<username>/.rbenv/shims/ruby
Le shim est en fait un script qui agit comme une redirection vers la version de ruby que vous définissez.
rbenv global 1.9.3 rbenv local --unset rbenv shell --unset
Je recommande que pour résoudre les problèmes, vous ne définissiez pas la version "locale" spécifique au projet et la version "shell" spécifique au shell et testiez simplement en utilisant le paramètre de version "global" qui est déterminé dans un fichier texte en clair dans ~ / .rbenv / verion qui sera juste le numéro de version "1.9.3" dans votre cas. Vous pouvez faire "ls -laG" à la racine de votre dossier de projet (pas le dossier de départ) pour vous assurer qu'il n'y a plus de fichier ".ruby-version".
Vous pouvez utiliser les "versions rbenv" pour identifier la version que rbenv doit utiliser (ainsi que l'emplacement et le nom du fichier qui le définit).
rbenv versions
AUCUN DE CE QUI COMPTE: jusqu'à ce que vous définissiez le chemin correctement.
Utilisez ceci pour vous assurer que votre * MacOS vous obéira:
eval "$(rbenv init -)"
Suivi par:
which ruby
Pour vous assurer qu'il ressemble à: /Users//.rbenv/shims/ruby
Ajoutez ensuite la ligne à votre profil pour qu'elle s'exécute chaque fois que vous ouvrez une nouvelle fenêtre de terminal:
~/.bash_profile eval "$(rbenv init -)"
Il existe d'autres façons de modifier le chemin d'accès, n'hésitez pas à les remplacer au lieu d'exécuter l'initialisation rbenv.
REMARQUE: réinstallez Rails avec:
gem install rails
Si vous essayez d'exécuter Ruby on Rails, vous devez d'abord tout faire fonctionner, puis réinstaller la gemme des rails. Une installation précédente de Rails utilisera un chemin codé en dur vers le mauvais rubis et plusieurs autres choses seront au mauvais endroit, alors réinstallez simplement la gemme.
PS Si votre MacOS ne vous obéira pas (* mentionné ci-dessus), vous devrez peut-être trouver un autre moyen de modifier votre chemin, mais cela ne posera probablement pas de problème car "les Mac fonctionnent tout simplement";)
la source
Je viens de trouver ce même problème. Ce que j'ai fait, c'est désinstaller rbenv (via homebrew) et le réinstaller. J'ai aussi ajouté
dans ~ / .bash_profile lorsque j'ai réinstallé rbenv. Fonctionne parfaitement maintenant.
la source
Dans mon cas, le changement
~/.zshenv
n'a pas fonctionné. J'ai dû faire les changements à l'intérieur~/.zshrc
.Je viens d'ajouter:
en haut de
~/.zshrc
, redémarré le shell et déconnecté.Vérifiez si cela a fonctionné:
la source
Exécutez cette commande
Ajoutez rbenv à bash pour qu'il se charge à chaque fois que vous ouvrez un terminal
cela résoudra votre problème Référence
la source
Si vous utilisez bash , accédez à
et ajoutez la ligne suivante (si ce n'est pas déjà fait)
Si vous utilisez Zsh, accédez à
et ajoutez la même ligne de code, à la fin du fichier .zshrc.
Ensuite, redémarrez simplement votre terminal et ça devrait aller maintenant.
la source
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. Devrait être une chaîne correspondant à une version Ruby connue de rbenv. "utilisera votre système par défaut Ruby. Exécuter les versions de rbenv" pour une liste des versions Ruby disponibles. "
Si rbenv a été installé correctement, ruby -v correspondra à
rbenv shell 1.9.3-p125
la source
Quant à moi la meilleure façon d'utiliser
rbenv
ainsizsh
est d' ajouterrbenv
à la section plugins dans.zshrc
config. Dans mon cas, cela ressemble à:Après cela, il n'y a aucun problème lors de l'installation, de la commutation, de l'utilisation des versions ruby avec l'aide de
rbenv
.Pensez à redémarrer votre session de terminal après avoir apporté des modifications.
la source
J'ai eu le même problème, mais causé par Homebrew:
D'une certaine manière, j'avais également installé Ruby via Homebrew, et le chemin Homebrew était en avance sur le chemin rbenv dans mon
$PATH
. Courir l'abrew uninstall ruby
réparé pour moi.la source
courir:
Après avoir exécuté cela, lorsque j'ai défini ma version locale de rbenv:
puis ma
ruby -v
et mesrbenv local
versions ont coïncidé.Remarque: Vous voudrez peut-être également quitter le répertoire dans lequel vous vous trouvez, puis y retourner, j'ai remarqué que c'était nécessaire pour moi afin que les choses fonctionnent.
la source
J'en suis venu au même problème. Corrigé cela en exécutant la commande "rbenv global" avec "sudo". Je pense que c'était un problème de permission.
mise à jour: j'ai enfin 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 qu'il a été créé par erreur de temps en temps. vous devez le supprimer.
la source
Lorsque j'ai eu ces symptômes, le problème s'est avéré que l'installation avait échoué à mi-chemin pour la nouvelle version de Ruby vers laquelle j'essayais de passer, sans que je m'en rende compte. Le correctif consistait à le supprimer et à le réinstaller.
(Cela signifiait que même si ruby 1.9.3 apparaissait dans la liste rbenv des versions disponibles, il n'avait pas d'exécutable sur le chemin où rbenv le supposait. Puisque rbenv essaie de changer votre version ruby simplement en ajoutant un emplacement à votre chemin, s'il n'y a rien réellement à l'emplacement qu'il précède, 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 la question 1.8.7.)
la source
pour l'utilisateur de coquille de poisson
la source
Cela m'est arrivé juste après ma réinstallation
rbenv
. Apparemment, j'avais un.ruby-version
fichier dans mon répertoire personnel, spécifiant une version qui n'existait plus. Une fois que j'ai supprimé le fichier, tout a fonctionné.la source
Assurez-vous que la dernière ligne de votre
.bash_profile
est:la source
La réponse acceptée suggère d'ajouter ce qui suit:
Cela ne fonctionnera pas sur Mac OSX, auquel l'OP fait référence. En fait, si vous installez rbenv via
brew install rbenv
, qui est vraiment la seule méthode d'installation sous Mac OSX, carcurl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
ÉCHOUERA sous OSX, alors l'exécutable rbenv sera installé dans:Cependant, même sous OSX, la racine rbenv restera dans le répertoire $ HOME:
Qu'est-ce que ça veut dire? Cela signifie que lorsque vous installez des rubis, ils s'installent dans le répertoire personnel donné sous .rbenv:
Maintenant, l'installation de brew a fait un travail que vous auriez à effectuer manuellement sous Linux. Par exemple, sous Linux, vous devrez installer ruby-build manuellement en tant que plugin:
C'est déjà fait avec l'installation homebrew. Il y a une étape importante qui doit être effectuée dans l'installation homebrew, comme dans l'installation Linux. Vous devez ajouter les cales rbenv à votre chemin. Pour ce faire, lorsque votre shell démarre, vous devez évaluer la commande suivante (qui à son tour ajoutera les cales rbenv au début de votre $ PATH):
Maintenant, lorsque vous exécutez
echo $PATH
, vous verrez les cales rbenv:Maintenant, vérifiez votre version ruby et elle reflétera le rubis rbenv installé:
la source
Étrangement, la version rbenv n'a pas défini le fichier .rbenv Vérifiez avec: ls -ltra -> pour voir qu'un rbenv a été écrit
la source
Vous pourriez essayer d'utiliser chruby ? chruby ne repose pas sur des cales, au lieu qu'il ne modifie que
PATH
,GEM_HOME
,GEM_PATH
.la source
J'ai oublié de supprimer rvm avant d'installer rbenv. J'ai supprimé rvm et réinstallé rbenv, mais le système n'utilisait toujours pas la version de Ruby désignée comme globale par rbenv. J'ai essayé de fermer Terminal, mais cela n'a fonctionné qu'une fois que j'ai redémarré toute la machine.
la source