昨日新しいMacにruby
のインストールのためchruby
を利用したことをiOS開発環境作成のためのRuby設定で書いたけどnodejs
やpython
もまた個別のバージョン管理ツールを導入しようとすると面倒くさくなり、以前聞いたことのある一つのツールで色々な言語のバージョン管理ができるanyenv調べてみると今はasdfの方がもっと使われてるっぽいのでasdf
を使ってruby
, nodejs
, python
を入れてみたのでメモ。
asdf
をインストール
いつものbrew
で行う。
brew install asdf
asdf
のインストール後の初期設定
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
asdf
は基本.tool-versions
というファイルでバージョンを指定するけど、設定によっては.ruby-version
や.node-version
などのファイルからも可能なようなのでその設定もやっておく
echo "legacy_version_file = yes" >> $HOME/.asdfrc
ruby
をインストール
asdf
はインストールしたい言語がある場合、その言語のプラグインをインストールする必要があるのでruby
用プラグインasdf-rubyをまずインストールする
各言語のプラグインのインストールには依存関係があって先にそれらのインストールが必要な場合があるのでREADMEの確認が必要で
asdf-ruby
の場合は以下が必要>brew install openssl@1.1 readline >export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
asdf plugin add ruby
その後ruby
のバージョン3.1.2
と2.7.6
をインストール
asdf install ruby 3.1.2
asdf install ruby 2.7.6
グローバルで利用するruby
のバージョンを3.1.2
で指定
asdf global ruby 3.1.2
各フォルダで利用するruby
のバージョンはlocal
を利用して指定
asdf local ruby 2.7.6
nodejs
をインストール
nodejs
もまずnodejs
用プラグインasdf-nodejsをインストールする
asdf plugin add nodejs
その後nodejs
のバージョン16.4.2
をインストール
asdf install nodejs 16.4.2
グローバルで利用するnodejs
のバージョンを16.4.2
で指定
asdf global nodejs 16.4.2
python
をインストール
python
もまずpython
用プラグインasdf-pythonをインストールする
asdf plugin add python
その後python
のバージョン3.10.4
をインストール
asdf install python 3.10.4
グローバルで利用するpython
のバージョンを3.10.4
で指定
asdf global nodejs 3.10.4
グローバル設定を確認
ホームフォルダの.tool-versions
を確認すると各言語のバージョンが確認できる
cat ~/.tool-versions
ruby 3.1.2
python 3.10.4
nodejs 16.4.2
また各言語のバージョンを直接確認
ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]
node -v
v16.4.2
python -V
Python 3.10.4
asdf
の他の使用例
利用可能なプラグインのリストを確認
asdf plugin list all
数が多いので確認したい言語がある場合は
grep
で絞るasdf plugin list all | grep ruby ruby *https://github.com/asdf-vm/asdf-ruby.git
インストール済みプラグインの更新
asdf plugin update --all
インストール済み言語のバージョンの確認
asdf list
nodejs
16.4.2
python
3.10.4
ruby
2.7.6
3.1.2
インストール済み言語の特定バージョンの削除
asdf uninstall ruby 3.1.2
最後にasdf
は言語のみではなくawscliなどのツールのバージョン管理もできるらしい、