💪
asdfで開発環境を整える
これがあればだいたい必要なのが揃うので重宝させてもらってます。
asdf is 何?
ざっくり言うと言語やライブラリのバージョン管理を一元管理してくれるツールです。
ディレクトリごとに使うバージョン自動で切り替えてくれます。
.tool-versions
がそれになります。
使い方
ドキュメントの丁寧で各OSや使っているシェルごとに説明があります。
asdfをインストールしたあとはプラグインを追加して、それぞれのバージョンをインストールします。
asdf plugin add {プラグイン名}
プラグインがインストールされたら、インストール可能なバージョンを見て、
asdf list-all {プラグイン名}
対象のバージョンをインストール
asdf install {プラグイン名} {バージョン}
インストールされたら各プロジェクトディレクトリで使うバージョンを指定
asdf local {プラグイン名} {バージョン}
そうすると、.tool-versions
が作成されます。
インストールされている一覧をみるなら、
asdf list {プラグイン名}
グローバル(デフォルト)のバージョンを指定するなら、
asdf global {プラグイン名} {バージョン}
plugin-list-all
asdf plugin-list-all
めちゃめちゃ出てくる😯
弊社で使っているのは全部?出てきました。
- python
- nodejs
- java
- terraform
- poetry
- redis
- minio
- postgres
docker不要で開発環境は作れちゃいますね。😊
補足
yarnとjavaはasdfを有効化したあとに下記を追記しました。
fishを使ってます。
# for asdf
source ~/.asdf/asdf.fish
# yarn
set -x fish_user_paths $(yarn global bin) $fish_user_paths
# java
. ~/.asdf/plugins/java/set-java-home.fish
他にも言語やライブラリ毎に追加の設定は必要かも知れませんがほとんどがコマンドのパスが解決できない😭ところかと思います。
以前、$JAVA_HOMEは下記のような解決をしてたりしました。
export JAVA_HOME=$(asdf where java)
Discussion