如何让asdf的版本成为版本

How to get asdf's version to be the version

在终端解释,我安装了一个使用asdf的nodejs版本,但是终端只看到另一个版本:

> asdf list
nodejs
  12.18.3

> nodejs --version
v8.10.0

> asdf global nodejs 12.18.3 

> nodejs --version          
v8.10.0

已将以下内容添加到 .zshrc 的顶部

. $HOME/.asdf/asdf.sh
export PATH=$HOME/.asdf/asdf.sh:$PATH

已重新加载 .zshrc

> source ~/.zshrc

没有将本地版本设置为 8.10.0 的本地文件。

如何让 nodejs --version 给我 asdf 承认为全球版本的版本?

我在 Ubuntu 18.04 和 Mac 10.15.7 上都遇到了这个问题。 有几个问题。

使用 brew (mac) 安装 asdf 没有正确安装 - asdf.sh 丢失。 The docs 建议使用 git 安装。

the docs所述,asdf.sh的运行ning(下图灰色框)需要位于.zshrc(或等效的配置文件设置文件,例如.bash_profile 等)。它将内容添加到 $PATH 的开头。

. $HOME/.asdf/asdf.sh

当然你需要在修改后运行 source .zshrc 以便终端重新加载更改。这应该会导致改变你的 $PATH,所以当你 运行 echo $PATH 你应该有一些开头的东西:

/Users/homersimpson/.asdf/shims:/Users/homersimpson/.asdf/bin:/usr/local/opt/qt@5.5/bin: ...other things separated by ':'

which node 应该给出类似 /Users/homersimpson/.asdf/shims/node 的内容。 asdf 的垫片位于路径的开头,使 asdf 的版本成为系统使用的版本。

我遇到了同样的问题,我注意到这似乎是因为 asdf 似乎不知道我今天通过 asdf 安装的 Ruby (2.6.3) 版本。它建议我使用我以前的三个版本之一 Ruby:

james@James-Precision-5520:~/Git/elixirschool$ asdf 当前 长生不老药 1.9.0-otp-22(由 /home/james/.tool-versions 设置) erlang 22.0.7(由 /home/james/.tool-versions 设置) ruby 2.6.3(由 /home/james/.tool-versions 设置) james@James-Precision-5520:~/Git/elixirschool$ 杰基尔 asdf:没有为命令 jekyll 设置版本 您可能想在 .tool-versions 文件中添加以下内容之一:

ruby2.3.7 ruby2.4.3 ruby2.5.1 james@James-Precision-5520:~/Git/elixirschool$ ls ~/.asdf/installs/ruby 2.3.7 2.4.3 2.5.1 2.6.3 james@James-Precision-5520:~/Git/elixirschool$ asdf 列表 ruby 2.3.7 2.4.3 2.5.1 2.6.3 当我将 .tool-versions 更改为指向其他三个(较旧的)Ruby 安装之一时,它开始工作了。

如果你想用自制软件安装 asdf 使用这个:

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

这会将 asdf.sh 正确添加到 .zshrc 文件。

Read about it here