使用 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

相關文章

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

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

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

閱讀更多
小米水離子吹風機 H500:女性的福音 - 冷熱風交替

小米水離子吹風機 H500:女性的福音 - 冷熱風交替

家中的吹風機壞掉後,我開始尋找一款能夠提升生活質感的吹風機。在這次的探索中,我發現了一款名為小米水離子吹風機 H500 的產品。這款吹風機不僅具有獨特

閱讀更多
如何在 Hugo 網站中加入 LikeCoin 讚賞鍵提升創作收入

如何在 Hugo 網站中加入 LikeCoin 讚賞鍵提升創作收入

因為我本身是 LikeCoin 支持者,也是推崇文章開源但內容有價的創作者。 因此希望即便從 WordPress 轉移至 Hugo ,依然能夠使用 LikeCoin 作為連結我與讀者間的橋梁。 本文以 hugo v0.114.1 搭配 LoveIt

閱讀更多