macOS High Sierraにしたらhomebrewが使えなくなった

環境

macOS High Sierra 10.13.1

事象

正確に言うと以下のようなメッセージが表示されてbrew installが使えなくなりました。

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

解決法

上記のエラーメッセージで検索すると、gitが使えない!という内容の記事がたくさん見つかりました。

Mac OS Sierraにしたらgitコマンド、ターミナル上にエラーが出てしまった。 - Qiita

El Capitanにしたらgitコマンド(CUI)が動かなくなった。 - Qiita

上記の記事を参考に、xcode-selectコマンドを実行することで無事解決できました。

$ xcode-select --install

上のコマンドは何?

Xcode Command Line Toolsをインストールするもの。 このツールがあることでgitgccmakeといったコマンドが使えるようになります。

Xcode本体に付属していますが、iOSアプリ開発をしないならCLIを単体で入れた方が数GB容量を節約できます。

OSがアップデートされるたびにCLIも入れ直す必要があるみたいですね。

なぜbrew installが使えなくなったのか?

brewコマンド自体は自分でバイナリインストールしたはずなのでCLIは一見関係なさそうなのが心に引っかかりました。

homebrewの仕組みを調べて見たところ、installの内部ではmake installを実行しているようでCLIに入っているmakeが使えないことが原因だったみたいです。

Homebrew — macOS 用パッケージマネージャー

Homebrew の formula はシンプルな Ruby スクリプトです:

class Wget < Formula
  homepage "https://www.gnu.org/software/wget/"
  url "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
  sha256 "52126be8cf1bddd7536886e74c053ad7d0ed2aa89b4b630f76785bac21695fcd"

  def install
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

最後に:CLIのバージョンを確認する方法

brew --config出力結果のCLIを参照します。

$ brew --config
HOMEBREW_VERSION: 1.3.9
ORIGIN: https://github.com/Homebrew/brew
HEAD: 4f5e938a5dbe049e05dea19495b6547acc5c5b5b
Last commit: 4 days ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 2dfcf690f03253ad124dc1c8dae46ef0e82c98c6
Core tap last commit: 5 hours ago
HOMEBREW_PREFIX: /usr/local
CPU: quad-core 64-bit broadwell
Homebrew Ruby: 2.3.3 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/bin/ruby
Clang: 9.0 build 900
Git: 2.13.6 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 7.54.0 => /usr/bin/curl
Perl: /usr/bin/perl
Python: /usr/local/opt/python/libexec/bin/python => /usr/local/Cellar/python/2.7.14/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /Users/manami/.rbenv/shims/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Java: 1.8.0_121
macOS: 10.13.1-x86_64
Xcode: 9.1
CLT: 9.1.0.0.1.1508540944
X11: N/A

このトラブルを通じてGNU Makeに興味が出てきたのでさらに勉強してみようー