ランタイムバージョン管理をasdfに変更してみました
こんにちは中川です。元々、言語系のバージョン管理には anyenv を使っていたのですが、PCを替えたついでということもあり、統一的に様々な言語やツールを管理できる asdf に変更してみました。
インストール
https://github.com/asdf-vm/asdf
まずはインストールを行います。
$ brew install asdf
$ echo -e "\n. $(brew --prefix asdf)/asdf.sh" >> ~/.bash_profile
$ echo -e "\n. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash" >> ~/.bash_profile
プラグイン追加
各ツールの管理はプラグインを追加することで行なえます。プラグインの一覧は以下のコマンドで確認できます。
$ asdf plugin list all
1password-cli https://github.com/NeoHsu/asdf-1password-cli.git
R https://github.com/taiar/asdf-R.git
...
zola https://github.com/salasrod/asdf-zola.git
zoxide https://github.com/nyrst/asdf-zoxide
言語系だけでなく、 awscli や terraform などのツールも管理することができます。今回は Node.js のプラグインをインストールしてみます。
$ asdf plugin add nodejs
$ asdf plugin list
nodejs
Node.jsインストール
それでは、Node.js 自体のインストールを行います。インストールできるバージョンの一覧を確認します。
$ asdf list all nodejs
0.1.14
0.1.15
...
16.2.0
16.3.0
まずは、最新版の16.3.0をインストールを試してみます。
$ asdf install nodejs 16.3.0
...
You must install GnuPG to verify the authenticity of the downloaded archives before continuing with the install: https://www.gnupg.org/
macOSでは、`gpg` が必要なようなので追加します。バージョンの切り替えを確認したいので最新版とLTSをインストールします。 (参考: https://github.com/asdf-vm/asdf-nodejs )
$ brew install gpg
$ asdf install nodejs 14.17.1
$ asdf install nodejs 16.3.0
グローバルに利用するバージョンは以下で設定できます。グローバル設定は $HOME/.tool-versions に各バージョン情報が保存されるようです。
$ asdf global nodejs 16.3.0
$ node -v
v16.3.0
特定のディレクトリでのバージョン指定も試してみます。
$ mkdir sample
$ cd sample
$ asdf local nodejs 14.17.1
$ node -v
v14.17.1
プロジェクトによっては、.node-version が既にあり、変更したくないということもあります。その場合は、 $HOME/.asdfrc に legacy_version_file = yes を設定すればそちらも参照してくれるようです。
さいごに
今回は、簡単に様々なツールのバージョン管理を行える asdf を試してみました。忙しいとなかなか面倒になってしまいがちではあ りますが、定期的にPC環境も見直していきたいなと思いました。