はじめに
Ubuntu 20.04 LTS (WSL2) に asdf をシステムワイドにインストールします。
asdf は anyenv に似ており、Python や Node.js など複数の環境を一貫したコマンドで導入できます。
asdf で導入可能な環境はこちら。
前提
- OS: Ubuntu 20.04 LTS (WSL2)
- Shell: Bash
インストール
基本的に 通常の手順 に沿って進めます。
1. curl とgit のインストール
sudo apt install -y curl git
2. GitHub から asdf (v0.8.0) のクローン
今回は /usr/local
直下に置きます。
sudo git clone https://github.com/asdf-vm/asdf.git /usr/local/asdf --branch v0.8.0
3. 管理グループの設定
管理者権限がなくても asdf を利用できるように管理グループ asdf
を作成し、/usr/local/asdf
の操作権限1を付与します。
sudo groupadd asdf
sudo chgrp -R asdf /usr/local/asdf
sudo chmod -R g+rwXs /usr/local/asdf
sudo gpasswd -a foo asdf
再ログインまたは exec bash -l
で設定を反映します。
4. 環境変数の設定
通常は ~/.bashrc
に . $HOME/.asdf/asdf.sh
を追加する箇所になります。
今回は /etc/profile.d/asdf.sh
に必要な環境変数等を書いています。
sudo vi /etc/profile.d/asdf.sh
export ASDF_DIR=/usr/local/asdf
export ASDF_DATA_DIR=$ASDF_DIR
ASDF_BIN="${ASDF_DIR}/bin"
ASDF_USER_SHIMS="${ASDF_DATA_DIR}/shims"
PATH="${ASDF_BIN}:${ASDF_USER_SHIMS}:${PATH}"
. "${ASDF_DIR}/lib/asdf.sh"
. "${ASDF_DIR}/completions/asdf.bash"
再ログインまたは source /etc/profile.d/asdf.sh
で設定を反映します。
5. 動作の確認
asdf --version
v0.8.0-c6145d0
バージョン情報が出力されればインストール完了です。
asdf で任意の環境をインストールしていきましょう。
Tips
sudoで実施すると sudo: asdf: command not found
になる可能性があります。
その場合は、sudo の i
オプションを利用します。
sudo -i asdf --version
または、以下の環境変数を引き継ぐことでも実行可能です。
(個人的には sudo -i
の利用を推奨したいですが。)
- PATH
- ASDF_DIR
- ASDF_DATA_DIR
sudo visudo
Defaults exempt_group = "asdf"
Defaults env_keep += "ASDF_DIR ASDF_DATA_DIR"
おわりに
asdf をシステムワイドにインストールする記事がありそうでなかったので書いてみました。
asdf 自体は最近知ったのですが、導入可能な環境の種類が多いので重宝するかもしれないです。
参考文献
-
一部のファイル (asdf/lib/commands/以下のファイル) に実行権限を付与すると、
asdf_version: command not found
等のエラーが発生する可能性があるため、g+rwXs
にしています。
その後、管理グループに実行ユーザ (foo) を追加します。 ↩