8

在终端中解释,我已经安装了一个使用 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 承认为全球版本的版本?

4

3 回答 3

6

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

使用 brew (mac) 安装 asdf 无法正确安装 -asdf.sh丢失。文档建议使用 git 进行安装,这很有效。

文档中所述,(下面的灰色框)的运行asdf.sh需要在 .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 的版本成为您的系统使用的版本。

于 2020-10-02T10:49:29.847 回答
0

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

james@James-Precision-5520:~/Git/elixirschool$ asdf 当前的 elixir 1.9.0-otp-22 (由 /home/james/.tool-versions 设置) erlang 22.0.7 (由 /home/james/. tool-versions) ruby​​ 2.6.3 (set by /home/james/.tool-versions) james@James-Precision-5520:~/Git/elixirschool$ jekyll asdf: 没有为命令 jekyll 设置版本,您可能想添加一个.tool-versions 文件中的以下内容:

ruby 2.3.7 ruby​​ 2.4.3 ruby​​ 2.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 list ruby​​ 2.3.7 2.4.3 2.5.1 2.6.3 当我将 .tool-versions 更改为指向其他三个(较旧的)Ruby 安装之一时,它开始了在职的。

于 2021-07-28T17:06:48.063 回答
0

如果你想用 homebrew 安装 asdf 使用这个:

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

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

在这里阅读

于 2022-02-09T04:56:42.063 回答