A little bit of everything

元・情報系大学院生の備忘録

M1 Mac で Mavenをインストール

結論:このとおりにやれば M1 MacMavenをインストールできる

(注)上から順位に実施すること。


1. Homebrewをインストールする

yuukiyg.hatenablog.jp

2. Xcode CLT をインストールする

以下のコマンドを打てばよい。

xcode-select --install

3. gcc をインストールする

Homebrew と Xcode CLT がインストールされている状態で、以下のコマンドを打てばよい。

brew install gcc   

4. maven をインストールする

gcc がインストールされている状態で、以下のコマンドを打てばよい。

brew install maven

5. 動作確認してみる

mvn --version

f:id:yuukiyg:20210216143316p:plain

以上のように、ちゃんとインストールできていれば終了。


以下、試行錯誤した際の過程をメモ

まずは何も考えず以下のコマンドで、HomebrewでMavenをインストールしてみる。

brew install maven

すると、以下のように怒られてしまった。
どうやら、gccを先に入れないといけないらしい。おそらく、Mavenをインストールする過程で、ソースからビルドしてインストールするものがあるらしく、そのときにgcc が必要みたい。
f:id:yuukiyg:20210216051039p:plain

そこで、何も考えず、以下のコマンドで gccをインストールしようとしてみる。

brew install gcc

これでもエラーが出た。
f:id:yuukiyg:20210216053350p:plain

「ソースからgcc をビルドしてみてほしい」と言われている。
そして、それはbrew install --build-from-source gcc というコマンドを実行するとできるが、ソースからビルドすることは unsupported と言われてしまっている。


もう一つ気になるのはこの記述。

gcc: the bottle needs the Xcode CLT to be installed.

bottle とは Homebrew においてビルド済みのバイナリファイルをtar.gz で圧縮した状態のものを意味する。

brew install では bottle がリポジトリに存在すればそれをインストールするし、存在しなければソースからビルドしたあとにインストールする、という動きになる。詳しくはこちらに書いた。

yuukiyg.hatenablog.jp

そして、どうやら gccXcode CLT(Command Line Tools) がないと、bottleからインストールすることができないらしい。したがって、以下のコマンドで、Xcode CLT をインストールする。

xcode-select --install


Xcode CLTが入った状態で、以下のコマンドを打ったら、gcc をインストールできた。

brew install gcc  


=========== ここから考察 ===========
gcc をインストールするために Xcode CLT が必要な理由は、gccgmp, isl, mpfr, libmpc といったツールに依存しており、これを先にインストールしないといけない(Homebrewやyum, aptのようなパッケージ管理システムの場合、自動で依存ツールをインストールしてくれるはず)。
で、おそらくこれらの依存ツールのインストールする際に、ソースからビルドするものがあるのだと思う。
=========== ここまで考察 ===========

最後に以下のコマンドを実行したら、Mavenがインストールできた。

brew install maven