Als ich versuchte, mit der Arbeit zu beginnen und wie gewohnt "bin / rail" machte, erhielt ich die folgende Meldung.
$ bin/rails s
Your Ruby version is 2.6.3, but your Gemfile specified 2.6.5
Wenn ich die im System festgelegte Ruby-Version überprüfe, ist sie 2.6.3, obwohl ich 2.6.5 mit rbenv hätte installieren sollen.
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
Ich habe auch die in rbenv angegebene Version für alle Fälle überprüft, aber es gibt keinen Fehler in 2.6.5.
$ rbenv versions
system
* 2.6.5 (set by /Users/Nutzername/desktop/Verzeichnisname/.ruby-version)
2.7.0
Überprüfen Sie zunächst, ob der Pfad rbenv vorhanden ist, aber es gab kein Problem.
$ cat ~/.bash_profile
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Als ich das Referenzziel des Befehls "ruby" überprüfte, wurde von rbenv nicht darauf verwiesen, wie unten gezeigt. Gleiches gilt für den Befehl "bundler".
$ which ruby
/usr/local/bin/ruby
$ which bundler
/usr/local/bin/bundler
Ich habe auch die Reihenfolge überprüft, in der die Pfade gelesen wurden, aber es gab kein Problem mit der Lesereihenfolge. Daher habe ich spekuliert, dass es überhaupt ein Problem mit dem Installationsstatus von rbenv geben könnte. Zuerst überprüfte ich Unterlegscheiben von Rbenv. shims ist eine Datei, die die ausführbare Datei "irb, gem, rake, Rails, Ruby" und andere Befehle von rbenv verwaltet.
$ ls -l ~/.rbenv/shims
#Es war leer.
Da der Inhalt leer war, wurde gesagt, dass auf die von rbenv verwaltete Version von Ruby nicht verwiesen wurde. Wurde es irgendwie gelöscht ...
Zuerst hatte ich nicht vor, eine andere Version von Ruby zu installieren, also habe ich "rehash" ausgeführt, eine Funktion von rbenv, um Shims eine Reihe von Befehlen hinzuzufügen.
$ rbenv rehash
#Überprüfen Sie die Unterlegscheiben, wenn Befehle hinzugefügt wurden
$ ls -l ~/.rbenv/shims
#Leer lassen...
Beim Ausführen von "Rehash" wurden keine Befehle hinzugefügt. Ich habe viel recherchiert, aber ich konnte die Ursache nicht herausfinden. Zu diesem Zeitpunkt habe ich beschlossen, Ruby 2.6.6 zu installieren, eine stabile Version vom 26. Mai 2020, als dieser Artikel geschrieben wurde.
$ rbenv install 2.6.6
$ rbenv rehash #Fügen Sie einen Befehl hinzu
$ rbenv global 2.6.6 #Geben Sie die systemweit zu verwendende Version an
$ which ruby
/Users/Nutzername/.rbenv/shims/ruby
$ which bundler
/Users/kawafujimasashi/.rbenv/shims/bundler #Überprüfen Sie den Bundler für alle Fälle. Es wurde ohne Probleme hinzugefügt.
#Wechseln Sie in das Verzeichnis der obersten Ebene Ihrer Rails-Anwendung
$ rbenv local 2.6.6 #Geben Sie die zu verwendende Ruby-Version an.ruby-Schreiben Sie die Versionsdatei neu
$ bundle install
Und als ich bin / Rails ausgeführt habe, wurde auf die von rbenv angegebene Version verwiesen und es hat funktioniert.
Offizieller Github README https://github.com/rbenv/rbenv#how-rbenv-hooks-into-your-shell
Recommended Posts