mise

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋

mise是一套支援多程式語言的版本管理軟體。

簡介

mise這類軟體避免了需要針對各程式語言實作安裝對應的version manager。另外mise除了自行實作的部分外,也支援了asdf生態系的設定,所以asdf可以安裝的程式語言,在mise上也可以安裝。

安裝

DebianUbuntu上可以透過官方的APT Repository安裝:

wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1> /dev/null; echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list; sudo apt update; sudo apt install -y mise; sudo apt clean

ARM64的平台要使用arm64

wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1> /dev/null; echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=arm64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list; sudo apt update; sudo apt install -y mise; sudo apt clean

但Raspberry Pi目前需要手動安裝,這是32-bit版本:

cd /usr/bin; sudo wget https://github.com/jdx/mise/releases/download/v2024.10.9/mise-v2024.10.9-linux-armv7; sudo chmod 755 mise-v2024.10.9-linux-armv7; sudo ln -sf mise-v2024.10.9-linux-armv7 mise

設定

在自己的~/.bashrc裡面設定啟動:

#
if command -v mise > /dev/null; then
    eval "$(mise activate bash)"
fi

zsh也可以設定對應的值:

#
if command -v mise > /dev/null; then
    eval "$(mise activate zsh)"
fi

其他設定

另外,由於使用預先編好的Python binary可能會有PyPI套件無法安裝的問題(像是uwsgi[1]),這邊可以設定要求mise透過自己編來解決:

mise settings set python.compile 1

使用

一些基本的操作:

mise ls

mise use -g python@3.12
mise install python@3.9

mise use -g node@lts

常見的套件會有binary直接下載使用,但比較舊的版本(像是Python 2.7)就有可能會在本機上編譯,這時候可能會遇到因為缺少套件而編譯失敗的問題,需要查看log補上對應的套件再安裝。

cron

在cron job裡面使用的話,目前的解法會用shims:

eval $(mise activate --shims)

相關連結

參考資料

外部連結