インストールログが並列に混ざって読みにくい
【mise】mise installで設定ファイルに書いたツールをインストールする
で紹介したmise installは、mise.tomlに複数のツールが書かれている場合、既定で複数のツールを並行してインストールする。速度面では有利だが、複数のツールのダウンロード・インストールログが入り交じって、どのツールでエラーが起きたか分かりにくくなる場合がある。環境変数MISE_JOBSを設定すると、同時に実行するインストール処理の数を変更できる。
既定では8並列で実行される
mise.tomlに複数のツールを書いた状態でmise installを実行すると、既定で最大8個まで並列にインストールが進む。
[tools]
lazygit = "latest"
delta = "latest"
bat = "latest"
fd = "latest"
$ mise install
mise delta@0.19.2 [1/3] install
mise bat@0.26.1 [1/3] install
mise lazygit@0.64.1 [1/3] install
mise fd@10.5.0 [1/3] install
mise fd@10.5.0 [1/3] download fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise delta@0.19.2 [1/3] download delta-0.19.2-aarch64-apple-darwin.tar.gz
mise bat@0.26.1 [1/3] download bat-v0.26.1-aarch64-apple-darwin.tar.gz
mise lazygit@0.64.1 [1/3] download lazygit_0.64.1_darwin_arm64.tar.gz
mise fd@10.5.0 [2/3] checksum fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise fd@10.5.0 [3/3] extract fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise fd@10.5.0 ✓ installed
mise delta@0.19.2 [2/3] checksum delta-0.19.2-aarch64-apple-darwin.tar.gz
mise delta@0.19.2 [3/3] extract delta-0.19.2-aarch64-apple-darwin.tar.gz
mise bat@0.26.1 [2/3] checksum bat-v0.26.1-aarch64-apple-darwin.tar.gz
mise bat@0.26.1 [3/3] extract bat-v0.26.1-aarch64-apple-darwin.tar.gz
mise delta@0.19.2 ✓ installed
mise lazygit@0.64.1 [2/3] checksum lazygit_0.64.1_darwin_arm64.tar.gz
mise lazygit@0.64.1 [3/3] extract lazygit_0.64.1_darwin_arm64.tar.gz
mise bat@0.26.1 ✓ installed
mise lazygit@0.64.1 ✓ installed
4つのツールの[1/3] installや[1/3] downloadが入り交じって表示され、どのツールがどこまで進んでいるか目で追いにくい。
MISE_JOBS=1で直列インストールする
同じmise.tomlをMISE_JOBS=1でインストールすると、1つのツールが完了してから次のツールに進む。
$ export MISE_JOBS=1
$ mise install
mise lazygit@0.64.1 [1/3] install
mise lazygit@0.64.1 [1/3] download lazygit_0.64.1_darwin_arm64.tar.gz
mise lazygit@0.64.1 [2/3] checksum lazygit_0.64.1_darwin_arm64.tar.gz
mise lazygit@0.64.1 [3/3] extract lazygit_0.64.1_darwin_arm64.tar.gz
mise lazygit@0.64.1 ✓ installed
mise delta@0.19.2 [1/3] install
mise delta@0.19.2 [1/3] download delta-0.19.2-aarch64-apple-darwin.tar.gz
mise delta@0.19.2 [2/3] checksum delta-0.19.2-aarch64-apple-darwin.tar.gz
mise delta@0.19.2 [3/3] extract delta-0.19.2-aarch64-apple-darwin.tar.gz
mise delta@0.19.2 ✓ installed
mise bat@0.26.1 [1/3] install
mise bat@0.26.1 [1/3] download bat-v0.26.1-aarch64-apple-darwin.tar.gz
mise bat@0.26.1 [2/3] checksum bat-v0.26.1-aarch64-apple-darwin.tar.gz
mise bat@0.26.1 [3/3] extract bat-v0.26.1-aarch64-apple-darwin.tar.gz
mise bat@0.26.1 ✓ installed
mise fd@10.5.0 [1/3] install
mise fd@10.5.0 [1/3] download fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise fd@10.5.0 [2/3] checksum fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise fd@10.5.0 [3/3] extract fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise fd@10.5.0 ✓ installed
ログがツールごとにまとまって出力されるため、エラーが起きたときにどのツールの処理かが一目で分かる。並列度を下げた分だけ、全体の完了までの時間は伸びる傾向にある。
0以下を指定しても1として扱われる
MISE_JOBSに0以下の値を指定してもエラーにはならず、1を指定したときと同じ直列実行になる。
$ MISE_JOBS=0 mise install
mise fd@10.5.0 [1/3] install
mise fd@10.5.0 [1/3] download fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise fd@10.5.0 [2/3] checksum fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise fd@10.5.0 [3/3] extract fd-v10.5.0-aarch64-apple-darwin.tar.gz
mise fd@10.5.0 ✓ installed
こんな場面で使う
CI環境でネットワーク帯域やリソースに制約がある場合、並列数を下げると安定してインストールできることがある。逆に高速なネットワークとマシンリソースが十分にある環境では、既定の8より大きい値を指定して、さらに並列度を上げることもできる。--jobsフラグでも同じ値を指定でき、環境変数はシェルの起動ファイルやCIの設定に、フラグはその場限りの実行に使い分けるとよい。
\第一線のプログラマーの行動原理を学べる!/
