asdf
多语言版本管理器
补充说明
asdf 通过插件管理多种语言的版本(Node.js、Python、Ruby、Go 等),用 .tool-versions 固定项目版本。它通过 shim 拦截命令,切换版本不需要改 PATH。
常用示例
asdf plugin add nodejs
asdf plugin add python
asdf install nodejs 20.18.0
asdf install
asdf global nodejs 20.18.0
asdf local nodejs 20.18.0
asdf current
asdf list nodejs
asdf list-all python
asdf reshim nodejs
asdf plugin list
asdf update
易错点与排错
- shim 目录必须在 PATH 前面;否则系统自带的同名命令会先被执行。
- 安装新版本后可能需要
asdf reshim;命令找不到时先试这个。
- 插件质量参差;安装失败时看插件仓库和系统依赖,不要只怪 asdf。
.tool-versions 要提交;不同目录的版本可能不同。
- 全局版本只是默认值;项目级
.tool-versions 会覆盖它。
- asdf 本身升级可能影响插件兼容性;先看 release notes。
- 某些语言需要额外系统库(编译工具、头文件);插件不会自动安装。
- 与 mise 等替代品不要同时管理同一套 shim,避免 PATH 冲突。
相关命令
mise — 兼容 asdf 的现代版本管理器
nvm / pyenv / rbenv — 单语言版本管理