Quand j'ai essayé de commencer à travailler et que j'ai fait bin / rails s
comme d'habitude, j'ai reçu le message suivant.
$ bin/rails s
Your Ruby version is 2.6.3, but your Gemfile specified 2.6.5
Quand je vérifie la version de Ruby définie dans le système, c'est 2.6.3 même si j'aurais dû installer 2.6.5 avec rbenv.
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
J'ai également vérifié la version spécifiée dans rbenv au cas où, mais il n'y a pas d'erreur dans 2.6.5.
$ rbenv versions
system
* 2.6.5 (set by /Users/Nom d'utilisateur/desktop/Nom du répertoire/.ruby-version)
2.7.0
Tout d'abord, vérifiez si le chemin rbenv est en place, mais il n'y a pas eu de problème.
$ cat ~/.bash_profile
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Lorsque j'ai vérifié la destination de référence de la commande ruby
, elle n'était pas référencée à partir de rbenv comme indiqué ci-dessous. La même chose était vraie pour la commande bundler
.
$ which ruby
/usr/local/bin/ruby
$ which bundler
/usr/local/bin/bundler
J'ai également vérifié l'ordre dans lequel les chemins étaient lus, mais il n'y avait aucun problème avec l'ordre de lecture. Par conséquent, j'ai émis l'hypothèse qu'il pourrait y avoir un problème avec l'état d'installation de rbenv en premier lieu. Tout d'abord, j'ai vérifié les cales de rbenv. shims est un fichier qui gère les commandes exécutables de rbenv telles que ʻirb, gem, rake, rails et ruby`.
$ ls -l ~/.rbenv/shims
#C'était vide.
Comme le contenu était vide, la version de Ruby gérée par rbenv n'était pas référencée. A-t-il été supprimé d'une manière ou d'une autre ...
Au début, je n'avais pas l'intention d'installer une autre version de Ruby, j'ai donc lancé rehash
, qui est une fonction de rbenv, pour ajouter un ensemble de commandes aux shims.
$ rbenv rehash
#Vérifiez les cales si des commandes ont été ajoutées
$ ls -l ~/.rbenv/shims
#Laissez vide...
L'exécution de rehash
n'a ajouté aucune commande. J'ai fait beaucoup de recherches, mais je n'ai pas pu comprendre la cause.
À ce moment-là, j'ai décidé d'installer Ruby 2.6.6, qui est une version stable au 26 mai 2020, au moment de la rédaction de cet article.
$ rbenv install 2.6.6
$ rbenv rehash #Ajouter une commande
$ rbenv global 2.6.6 #Spécifiez la version à utiliser à l'échelle du système
ruby
$ which ruby
/Users/Nom d'utilisateur/.rbenv/shims/ruby
$ which bundler
/Users/kawafujimasashi/.rbenv/shims/bundler #Vérifiez le bundler au cas où. Il a été ajouté sans aucun problème.
#Accédez au répertoire de niveau supérieur de votre application Rails
$ rbenv local 2.6.6 #Spécifiez la version de Ruby à utiliser.ruby-réécrire le fichier de version
$ bundle install
Et quand j'ai exécuté bin / rails s
, la version spécifiée par rbenv était référencée et cela fonctionnait.
Github officiel README https://github.com/rbenv/rbenv#how-rbenv-hooks-into-your-shell
Recommended Posts