【開発者必見】簡単に始める!Mac開発環境の設定ガイド:Sdkman、brew、asdfの使い方
株式会社テイクーワンのOです。
macOSで、開発環境を整えるための定番ツールを紹介します。
対象読者
- 初心者~熟練開発者まで、すべてのmacユーザーの方
確認した環境
- MacBook Pro(Apple Silicon)
- macOS: Ventura 13.4
主な確認は上記環境で行なっていますが、Intel Macでも利用できることを確認しています。
紹介するツールの公式サイト
- sdkman (https://sdkman.io/)
- brew (https://brew.sh/)
- asdf (https://asdf-vm.com/)
それぞれ重複した機能もありますが、私の場合、基本的な開発関連ツールならsdkman、言語の導入ならasdf、通常のOSSの導入ならbrewといった役割分担をしています。
sdkman
https://sdkman.io/
JVM環境のパッケージ管理ツール。
私の場合は主に、基本的な開発関連ツールを導入する手段として利用しています。
そんなsdkmanですが、コマンド名は「sdk」です。
sdkmanの導入
公式(https://sdkman.io/)で、導入用のワンライナーをコピーし、ターミナルへ貼り付け実行します。
※macまたは、Linuxで実行できます。
$ curl -s "https://get.sdkman.io" | bash
導入可能なツールの確認
$ sdk list
sdkmanで導入したもの一例
- sdk install ant
- sdk install maven
- sdk install gradle
- sdk install groovy
導入可能なツールのバージョンを確認する
gradleのバージョンを確認する場合
$ sdk list gradle
バージョン指定して導入する
gradleの特定バージョンを導入する場合
$ sdk install gradle 7.6.1
バージョン指定して削除する
gradleの特定バージョンを削除する場合
$ sdk uninstall gradle 7.4.2
現在利用しているツールのバージョン確認
gradleのバージョンを確認する場合
$ sdk current gradle
Using gradle version 7.6.1
brew (Homebrew)
https://brew.sh/
Linux/macで利用可能な、パッケージ管理ツール。
標準で用意されていないCLIツールを各々の手順で導入すると、セキュリティ更新や導入したツールを忘れ、環境を汚しがちです。
私の場合は主に、brewを有用なCLIツールを導入する手段として利用しています。
※公式で、言語を日本語に設定すれば主な解説が見られます。
brewの導入
公式で導入用のワンライナーをコピーし、ターミナルへ貼り付け実行します。
※macまたは、Linuxで実行できます。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brewでのCLIツールの導入
CLI関連のツールで導入したいものがあれば、Googleで「brew install ツール名」と検索します。
大抵のものは導入できると思います。
brewで導入したもの一例
- brew install awscli
- brew install mysql
- brew install redis
- brew install postgresql
- brew install checkstyle
- brew install hexedit
- brew install nkf
- brew install yq
- brew install jq
- brew install expect
brewで導入したものの確認
$ brew list
brewで導入したものを更新
セットで実行しています。
$ brew update
$ brew upgrade
- brew update
Homebrewのみをバージョンアップする - brew upgrade
インストール済のパッケージも更新する
brewで導入されるパスの確認
実行結果は、Intel mac、Apple Silicon macで異なります。
$ brew --prefix
asdf
https://asdf-vm.com/
javaなど複数のバージョンを共存させたい場合、asdfが便利です。
brewでも導入可能ですが、ディストリビューションごとに導入方法が異なるので、私はasdfを使用しています。
asdfの導入
導入は、brew(Homebrew)を使います。
$ brew install asdf
asdfでのツール導入は、プラグインを介して行います。
利用できるプラグイン(javaなど)の確認は、以下のようにして行います。
$ asdf plugin list all
$ asdf plugin list all | grep java
実行例
$ asdf plugin list all | grep java
java *https://github.com/halcyon/asdf-java.git
Javaの導入
javaプラグインの導入
先の手順でjavaプラグインの情報が表示されましたので、「asdf plugin add」に続きjavaプラグインの情報を記述します。
$ asdf plugin add java https://github.com/halcyon/asdf-java.git
利用できる言語(java)のバージョンの確認
「asdf list-all java」では、あまりに多くの情報が表示されます。
2行目の例ではディストリビューション「temrin」の「Java11」か「Java17」、且つ「jre」(Java Runtime)を除きリスト表示します。
$ asdf list-all java
$ asdf list-all java | grep "temurin" | grep -e "-11" -e "-17" | grep -v "jre"
javaのインストール
$ asdf install java temurin-17.0.7+7
$ asdf install java temurin-11.0.19+7
言語のバージョンの切り替え
「asdf list java」で導入されているjavaのバージョンを確認後、「asdf global」で使用するバージョンを決定します。
※通常使用するJavaを「Java17」にする場合。
$ asdf list java
$ asdf global java temurin-17.0.7+7
※Java11の場合は、「asdf global java temurin-11.0.19+7」とします。
ご使用のシェルがzshの場合は、~/.zshrcの最後に以下の文を入れておくと、JAVA_HOMEが自動セットされます。
precmd() {
export JAVA_HOME="$(asdf where java)"
}
簡単に切り替えできるよう以下のエイリアスを切っておくと、シェルの再起動も自動化できます。
「java11」でjava11が、「java17」でjava17が使用可能になります(シェルの再起動でJAVA_HOMEもセットされます)。
※~/.zshrcに追記します。
※Javaのバージョン更新時は、書き換えを行なってください。
alias reload='(){exec $SHELL -l}'
alias java11='(){asdf global java temurin-11.0.19+7; java -version; reload}'
alias java17='(){asdf global java temurin-17.0.7+7; java -version; reload}'