核心

核心 asdf 命令列表很小,但可以促进很多工作流。

安装和配置

请查看 快速上手 了解更多详情。

Exec

asdf exec <command> [args...]

执行当前版本的命令垫片。

Env

asdf env <command> [util]

Info

asdf info

用于打印操作系统、Shell 和 asdf 调试信息的辅助命令。在报告 bug 时需要共享这些信息。

Reshim

asdf reshim <name> <version>

这将为某个包的当前版本重新创建垫片。默认情况下,垫片是在某个工具安装的过程中由插件创建。一些工具像 npm 命令行open in new window 允许全局安装可执行程序,比如使用 npm install -g yarn 命令安装 Yarnopen in new window。因为这个可执行程序不是通过插件生命周期安装的,所以还没有对应的垫片存在。asdf reshim nodejs <version> 命令将会强制重新计算任何新可执行程序的垫片,类似 nodejsversions 版本下的 yarn

Shim-versions

asdf shim-versions <command>

列举为命令提供垫片的插件和版本。

例如,Node.jsopen in new window 附带了两个可执行程序,nodenpm。当使用 asdf-nodejsopen in new window插件安装了这些工具的很多版本时,执行shim-versions` 命令会返回:

➜ asdf shim-versions node
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0
➜ asdf shim-versions npm
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0

更新

asdf 有一个依赖于 Git (我们推荐的安装方法)的内置命令用于更新。如果你使用了其他方法安装,则应按照该方法的步骤操作:

方法最新稳定版本master 分支上的最新提交
asdf (Git)asdf updateasdf update --head
Homebrewbrew upgrade asdfbrew upgrade asdf --fetch-HEAD
Pacman下载一个新的 PKGBUILD 并且重新编译
或者使用你习惯的 AUR helperopen in new window

卸载

根据以下步骤卸载 asdf

Bash & Git
  1. ~/.bashrc 配置文件中移除生效 asdf.sh 和补全功能的行:
. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash
1
2
  1. 移除 $HOME/.asdf 目录:
rm -rf ${ASDF_DATA_DIR:-$HOME/.asdf}
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Bash & Git (macOS)
  1. ~/.bash_profile 配置文件中移除生效 asdf.sh 和补全功能的行:
. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash
1
2
  1. 移除 $HOME/.asdf 目录:
rm -rf ${ASDF_DATA_DIR:-$HOME/.asdf}
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Bash & Homebrew (macOS)

如果你正在使用 macOS Catalina 以及更新版本,默认的 shell 已经变成了 ZSH。如果你在 ~/.bash_profile 文件中找不到任何配置,则可能位于 ~/.zshrc 中。在这种情况下,请按照 ZSH 指南进行操作。

  1. ~/.bash_profile 配置文件中移除生效 asdf.sh 和补全功能的行:
. $(brew --prefix asdf)/libexec/asdf.sh
. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash
1
2

补全功能可能已经如 Homebrew 的指南open in new window 那样配置了,因此请按照他们的指南找出要删除的内容。

  1. 用包管理器卸载:
brew uninstall asdf --force
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Bash & Pacman
  1. ~/.bashrc 配置文件中移除生效 asdf.sh 和补全功能的行:
. /opt/asdf-vm/asdf.sh
1
  1. 用包管理器卸载:
pacman -Rs asdf-vm
  1. 移除 $HOME/.asdf 目录:
rm -rf ${ASDF_DATA_DIR:-$HOME/.asdf}
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Fish & Git
  1. ~/.config/fish/config.fish 配置文件中移除生效 asdf.fish 的行:
source ~/.asdf/asdf.fish
1

以及使用以下命令移除补全功能:

rm -rf ~/.config/fish/completions/asdf.fish
  1. 移除 $HOME/.asdf 目录:
rm -rf ${ASDF_DATA_DIR:-$HOME/.asdf}
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Fish & Homebrew
  1. ~/.config/fish/config.fish 配置文件中移除生效 asdf.fish 的行:
source "(brew --prefix asdf)"/libexec/asdf.fish
1
  1. 用包管理器卸载:
brew uninstall asdf --force
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Fish & Pacman
  1. ~/.config/fish/config.fish 配置文件中移除生效 asdf.fish 的行:
source /opt/asdf-vm/asdf.fish
1
  1. 用包管理器卸载:
pacman -Rs asdf-vm
  1. 移除 $HOME/.asdf 目录:
rm -rf ${ASDF_DATA_DIR:-$HOME/.asdf}
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Elvish & Git
  1. ~/.config/elvish/rc.elv 配置文件中移除使用 asdf 模块的行:
use asdf _asdf; var asdf~ = $_asdf:asdf~
edit:completion:arg-completer[asdf] = $_asdf:arg-completer~
1
2

以及使用以下命令卸载 asdf 模块:

rm -f ~/.config/elvish/lib/asdf.elv
  1. 移除 $HOME/.asdf 目录:
if (!=s $E:ASDF_DATA_DIR "") { rm -rf $E:ASDF_DATA_DIR } else { rm -rf ~/.asdf }
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Elvish & Homebrew
  1. ~/.config/elvish/rc.elv 配置文件中移除使用 asdf 模块的行:
use asdf _asdf; var asdf~ = $_asdf:asdf~
edit:completion:arg-completer[asdf] = $_asdf:arg-completer~
1
2

以及使用以下命令卸载 asdf 模块:

rm -f ~/.config/elvish/lib/asdf.elv
  1. 用包管理器卸载:
brew uninstall asdf --force
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
Elvish & Pacman
  1. ~/.config/elvish/rc.elv 配置文件中移除使用 asdf 模块的行:
use asdf _asdf; var asdf~ = $_asdf:asdf~
edit:completion:arg-completer[asdf] = $_asdf:arg-completer~
1
2

以及使用以下命令卸载 asdf 模块:

rm -f ~/.config/elvish/lib/asdf.elv
  1. 用包管理器卸载:
pacman -Rs asdf-vm
  1. 移除 $HOME/.asdf 目录:
if (!=s $E:ASDF_DATA_DIR "") { rm -rf $E:ASDF_DATA_DIR } else { rm -rf ~/.asdf }
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
ZSH & Git
  1. ~/.zshrc 配置文件中移除生效 asdf.sh 和补全功能的行:
. $HOME/.asdf/asdf.sh
# ...
fpath=(${ASDF_DIR}/completions $fpath)
autoload -Uz compinit
compinit
1
2
3
4
5

或者 ZSH 框架插件(如果用了的话)

  1. 移除 $HOME/.asdf 目录:
rm -rf ${ASDF_DATA_DIR:-$HOME/.asdf}
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
ZSH & Homebrew
  1. ~/.zshrc 配置文件中移除生效 asdf.sh 的行:
. $(brew --prefix asdf)/libexec/asdf.sh
1
  1. 用包管理器卸载:
brew uninstall asdf --force && brew autoremove
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc
ZSH & Pacman
  1. ~/.zshrc 配置文件中移除生效 asdf.sh 的行:
. /opt/asdf-vm/asdf.sh
1
  1. 用包管理器卸载:
pacman -Rs asdf-vm
  1. 移除 $HOME/.asdf 目录
rm -rf ${ASDF_DATA_DIR:-$HOME/.asdf}
  1. 执行以下命令移除 asdf 所有配置文件:
rm -rf $HOME/.tool-versions $HOME/.asdfrc

恭喜你完成了 🎉