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