问题描述
我前几天下载了 asdf,并试图将它与我从 Github 下载的 ruby on rails 项目一起使用。
当我运行 asdf install
时,我得到以下响应:
firebase 9.10.0 is already installed
ruby 2.7.2 is already installed
然后我运行 rails s
:
No preset version installed for command rails
Please install a version by running one of the following:
asdf install ruby 2.7.2
or add one of the following versions in your config file at
/Users/******/Desktop/****/.tool-versions
ruby 3.0.1
该项目在 ruby 2.7.2 上运行。
.tool-versions:
ruby 2.7.2
node 12.18.3
我用自制软件安装了 asdf,并在 asdf 插件中使用了 oh-my-zhs。
编辑: 运行
asdf install ruby 2.7.2
只是说
ruby 2.7.2 is already installed
解决方法
您需要重新填充 ruby。运行 asdf reshim ruby
,然后再次尝试运行 rails s
。
我遇到了类似的问题,我刚刚重新安装了 rails。
gem install rails
,
对于诊断,请查看
的输出哪个红宝石
和
红宝石 --version
在您项目的工作目录中。如果它确实向您显示 ruby 版本 2.7.2,则再次从该工作目录运行“gem install rails”或(如果 gemfile.lock 存在,则为“bundle install”)。
一个常见的错误是修改shell配置文件后没有打开新的shell。如果某些程序安装在不同的路径,zsh 也需要运行“rehash”命令,但重新打开 shell 可以解决这个问题。
,如果 Ruby 2.7.2 已经在您的 .tool-versions
文件中,您只需运行即可解决此问题
$ bundle
这将安装正确版本的 Rails gem,一切都应该会再次运行。
首先尝试查看 shim-versions
的输出,您很可能会看到 Ruby 2.7.2 在那里,但 Rails 2.7.2 不在:
$ asdf shim-versions rails
ruby 2.7.0
$ asdf shim-versions ruby
ruby 2.7.2
ruby 2.7.0