使用 asdf 工具有效管理 Elixir、Erlang、Python 和 Node.js 等多種程式語言的版本
- Leo
- 技術宅 ( tech geek)
- 2024年2月22日
目錄
在軟體開發領域中,維持團隊成員工具版本的一致性是非常關鍵的。這正是 asdf
版本管理工具發揮作用的時刻。 asdf
讓你能在一個文件( .tool-versions
)裡面指定所有工具的版本,並且將該文件加入到 Git 倉庫中與團隊共享,這樣就能保證每個人都在使用相同版本的工具。
在 asdf
出現之前,開發者往往需要依賴多個不同的命令行界面(CLI)版本管理器,這些管理器各自擁有不同的 API、配置方式和實作細節(例如:路徑( $PATH
)的設定、shims 或環境變量的處理)。 asdf
提供了一個統一的操作界面和配置文件,顯著簡化了開發過程。此外, asdf
還支援通過插件擴展,使其能夠支援廣泛的工具和執行環境。
asdf
的核心理念是將所有工具的版本控制集中在一個地方管理。它透過 .tool-versions
文件來設定各工具的版本,並能夠自動切換到指定的版本。這意味著你可以在不同的專案中使用不同版本的工具,而無需在全局範圍內進行版本切換。
由於 asdf
擁有一個非常活躍的社群,它支援了眾多的工具,包括但不限於 Elixir、Erlang、Python、Node.js、Ruby、Rust、Go、Java 等。這讓 asdf
成為一個極具吸引力的選擇,尤其適合那些需要跨多種程式語言進行開發的開發者。
安裝 asdf
目前 asdf
僅支援 Linux 和 macOS。你可以通過以下命令安裝 asdf
:
curl -L -o source.tar.gz "$(curl -s https://api.github.com/repos/asdf-vm/asdf/releases/latest | jq -r '.tarball_url')"
tar -xzf source.tar.gz -C ~/.asdf --strip-components=1
rm source.tar.gz
echo '. "~/.asdf/asdf.sh"' >> ~/.bashrc
echo '. "~/.asdf/completions/asdf.bash"' >> ~/.bashrc
source ~/.bashrc
asdf --version
安裝插件
- 安裝 Node.js
asdf plugin add nodejs
ubuntu_version=$(lsb_release -rs)
if [ $(echo "$ubuntu_version < 20" | bc -l) -eq 1 ]; then
# 因為 Node.js 18 版後依賴於 GLIBC_2.28,但 Ubuntu 從 20 版後才支援 GLIBC_2.28
# Node.js 通常偶數為穩定 LTS 版本,故安裝 16 版的最後版本
export NODEJS_VERSION="16.20.2"
else
export NODEJS_VERSION="20.10.0"
fi
echo "NODEJS_VERSION is set to $NODEJS_VERSION"
asdf install nodejs $NODEJS_VERSION
asdf global nodejs $NODEJS_VERSION
node --version
npm --version
- 安裝 Python
asdf plugin add python
export PYTHON_VERSION="3.10.12"
asdf install python $PYTHON_VERSION
asdf global python $PYTHON_VERSION
python --version