使用 asdf 工具有效管理 Elixir、Erlang、Python 和 Node.js 等多種程式語言的版本

使用 asdf 工具有效管理 Elixir、Erlang、Python 和 Node.js 等多種程式語言的版本

目錄

在軟體開發領域中,維持團隊成員工具版本的一致性是非常關鍵的。這正是 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
comments powered by Disqus

相關文章

壓縮大師:使用 7-Zip 輕鬆個別壓縮多個資料夾

壓縮大師:使用 7-Zip 輕鬆個別壓縮多個資料夾

7-Zip 是一款開源的壓縮軟件,支持包括 7z、XZ、BZIP2、GZIP、TAR、ZIP、WIM 等多種壓縮格式。它提供了圖形用戶界面和右鍵選單,但並

閱讀更多
Raymii VS9 螢幕支架:完美的居家工作夥伴?

Raymii VS9 螢幕支架:完美的居家工作夥伴?

今天我要介紹的是一款來自台灣品牌 Raymii 的 VS9 螢幕支架。在這個居家工作成為新常態的時代,擁有一款好的螢幕支架不僅可以提高工作效率,還能確保我們的坐姿

閱讀更多
如何調整 Linux 系統時區

如何調整 Linux 系統時區

在 Debian/Ubuntu 上調整時區 檢查目前的時區設定 timedatectl 列出所有可用的時區 timedatectl list-timezones 設定時區 sudo timedatectl set-timezone Asia/Taipei sudo dpkg-reconfigure --frontend noninteractive tzdata 在 Docker 容器中調整時區 export TZ=Asia/Taipei ln -snf /usr/share/zoneinfo/$TZ /etc/localtime echo $TZ > /etc/timezone DEBIAN_FRONTEND="noninteractive" apt-get install -y tzdata

閱讀更多