ruby Asdf不会根据工具版本或使用本地命令切换本地版本

2ekbmq32  于 2022-11-04  发布在  Ruby
关注(0)|答案(9)|浏览(162)

前几天我下载了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上。
.工具版本:

ruby 2.7.2
node 12.18.3

我用自制软件安装了asdf,并使用了oh-my-zhs和asdf插件。
EDIT:正在运行

asdf install ruby 2.7.2

只是说

ruby 2.7.2 is already installed
dojqjjoe

dojqjjoe1#

您需要重新执行ruby。请执行asdf reshim ruby,然后再次尝试执行rails s

xqkwcwgp

xqkwcwgp2#

对于遇到这个问题的人,如果他们已经通过Homebrew安装了asdf,并且正在使用标准的ZSH shell(没有oh-my-zsh插件),请不要忘记获取asdf bash脚本:

echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
ckocjqey

ckocjqey3#

适用于RubyMine用户

如果您在集成的RubyMine终端中运行终端命令,在您将项目SDK更改为新安装的版本之前,不会发生任何变化。重新启动终端后,一切都将按预期运行。

ybzsozfc

ybzsozfc4#

如果.tool-versions文件中已经有Ruby 2.7.2,只需运行

$ 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
lc8prwob

lc8prwob5#

我在这个Reddit thread中找到的purplespline给出的以下步骤对我很有效:

asdf exec gem install rails

那么您应该能够运行其他Rails命令。

x7rlezfr

x7rlezfr6#

我遇到了类似的问题,我只是重新安装了Rails。

gem install rails
6l7fqoea

6l7fqoea7#

要进行诊断,请检查以下输出
该Ruby

Ruby--版本
如果它确实显示了ruby版本2.7.2,则从该工作目录再次运行“gem install rails”或(如果gemfile.lock存在,则运行“bundle install”)。
一个常见的错误是在修改shell配置文件后不打开新的shell。另外,如果某个程序安装在不同的路径下,zsh需要运行“rehash”命令,但重新打开shell会解决这个问题。

93ze6v8z

93ze6v8z8#

应首先安装gem包

gem install bundle

则可以运行bundlebundle install

eqfvzcg8

eqfvzcg89#

在我这边,我没有在我的zshrc上导出或添加这个

. /opt/homebrew/opt/asdf/libexec/asdf.sh

和资源

source ~/.zshrc

相关问题