Homebrewのインストールスクリプトを走らせる前にXcode関連の手動インストールを勧める解説が見られる理由
比較的最近(たとえば2020年以降)に書かれたであろうネット上の解説記事でも、macOSにHomebrewを新たにインストールする際、公式のインストールスクリプトを実行する前にまずXcodeの開発環境かあるいはXcode Command Line Tools(以下、CLT)をインストールするという手順で書かれているものが散見される。
本来、インストールスクリプトにはCLTが未インストールの場合には適切にインストールする仕組みが備わっているため、実際にmacOSをクリーンインストールした状態からインストールスクリプトの実行のみで問題なくインストールできた。
そこで、このような手順が広まっている原因として過去には手動インストールが必要だった時期があったのではという仮説を立て、Homebrewのインストールスクリプトにおけるの扱いの変遷を少し調べてみた。
https://brew.sh/ の冒頭のワンライナーで実行されるbashスクリプトの本体はここ。
履歴を眺めると2020年にRubyスクリプトからシェルスクリプトに移行されている。
それで本題だが、CLTの有無をチェックして/usr/bin/softwareupdate
でインストール、それがコケるようならxcode-select --install
にフォールバック、という流れはこの時点から現在まで大筋変わっていない。
xcode-select --install
だとGUIダイアログが出てうっとおしいよねってことで/usr/bin/softwareupdate
を導入したのが2016年。
さらに遡ると、xcode-select --install
が導入されたのが2013年。それ以前はインストールを促すメッセージを出力するのみだった。
このインストールスクリプトの原型は2012年前半ごろまでGistに置かれていた(履歴)。
Homebrewのホームページは mxcl.github.io/homebrew/ (2010年ごろ〜) → mxcl.github.io/homebrew/ (2013年ごろの一時期〜7月までは並立?) → brew.sh (遅くとも2013年3月〜)と移行しているようだ。brew.shの最古のアーカイブは以下。
Homebrewが作られたのは2009年5月。
2010年時点のホームページ
ではインストールに関してはレポジトリのWikiにあるインストールページ を参照するようになっていて、そちらではGistに置かれたインストールスクリプトを走らせた後、Xcodeを入れるように指示されている。ここで「あれ?インストールってgitリポジトリをcloneするから先にgitコマンドがないと動かないんじゃ?」という疑問が浮かぶかもしれないが、実はgitが使えるならまずcloneを試みるように変更されたのは2012年で、それ以前は単純にGitHubからcurlでtarballを落として展開するやり方だったので問題なかった。
tarballを使う部分は、2018年にGitHubがダウンロードにTLS 1.2を要求するようになった際に廃止されている。
2013年になると、wikiのインストールページから逆にホームページを参照するようになっている(書き換えられた場合セキュリティ的に問題なため)。
当時のホームページは、使用法が先にあって最後にインストールスクリプトが書かれているのが現在と異なる構成だが、「何をやってるのかはスクリプト読んでね」という立場でインストールページへの誘導があるのみで特にXcodeについて触れられていないのは現在と変わらない。
2014年にはリポジトリ自体の移動があってwikiも移動したが大筋は変化なし。
ホームページもbrew.shへのリンクになっている。
CLTについてXcodeとの関係やxcode-select
、xcodebuild
も含めよくまとまっている解説。
経緯としては、Xcode 3.0で複数のXcode開発環境を切り替えるツールとしてxcode-select
が導入され、4.3でXcode開発環境本体が/Developer
を使うのをやめてXcode.app
パッケージ以下に全部内包するようになると同時にCLTが切り離された感じなのかな。
まとめ
- 2012年ごろまでは、インストールスクリプト実行→必要に応じてXcodeやCLTをインストールという流れだった。
- 2013年にインストールスクリプトを実行すると必要性を判断してCLTがインストールされるようになった。
- なので事前にCLTをインストールしておく必要はない。
- ただしネット上の質問などを眺めるとCLTの再インストールが必要になる場合があったり、そもそもCLTのダウンロードとインストールには少し時間がかかるので手動で入れておくほうがいいという考え方もあったりするので、インストール方法を知っておくに越したことはない。