macOSのアップデートとcommand line tools for xcodeの導入

macOSをMontereyにアップグレードしようとしたらストレージが足らないと怒られた。

なので、一時的にXcodeをアンインストールしてストレージを稼いで、あとでXcodeは再インストールしようと目論んだ。

無事OSをMontereyにアップグレード

ところが、ちょっと心配していたことが起きてしまう。Xcodeを再インストールしようとしたら容量が足りないらしい。

XcodeがないとHOMEBREWがなくなって、rubyrailsも開発環境が復帰できない....

そこで、過去に試して挫折していたcommand line tools for xcode(CLT)の存在を思い出す。

CLTを使えばXcode本体の容量の10分の1くらいで開発環境が整うらしい。Xcode本体はスマホアプリ開発などをしない限り全部は必要ないらしい。

以下のコマンドを叩くと、ポップアップが出てきてCLTのインストールができる

xcode-select --install

自分は手元に「現場Rails」の本を持ちながらインストールをしたのだが、次に以下のコマンドでxcodeがインストールされているか確認するように書いてあるので実行してみる。

xcodebuild -version

ところが、sudo xcode-select --switch /Path/to/CommandLineTools をしてください。と言われる。/Path/toの部分はさっきインストールされた先だと思うのだが、どうやって見つければいいのかわからない。

linuxのfindやMacのfinderでXcodeで探してみても見つからない...インストールはできたはずなのに、どこにいったんだ...

ここで色々調べて時間が飛ぶ

いろいろ探して下記のサイトをみつけた。

brew upgrade でのエラー対処からCommand Line Toolsについてまとめてみる|TechRacho by BPS株式会社

これによれば、/Library/Developer/CommandLineToolsにCLTがインストールされているらしい。 sudo xcode-select --switch /Library/Developer/CommandLineToolsを使えば、パスがつながるとのこと

これで再度

xcodebuild -version

それでもバージョンは表示されず、「これはコマンドラインツールです」みたいなメッセージが出る。

$ xcodebuild -version
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

さっきのサイトをよく読むと、xcodebuildはXcode本体のバージョンを示すそうなので、CLTしか入れてない今の環境では用のないコマンドだと言うことがわかった。

つまり、たぶんxcode-select --installの時点で動かせたのに、動かせてないと思い込んでたっぽい。早速brew doctorを実行してみる。なんかWarningが出るが、実行できている!

続いてrbenvの導入

brew install rbenv

最新のrbenvがインストールできたー!

やっった!!!!

余談

HomebrewのRubyとrbenvのRubyインストールが別の場所にされていることを初めて知った。 シェルを立ち上げるときに最新のRubyを参照するようにパスを通しておくことにする。

~/.zshrc

# HomebrewのRubyインストール先
# export PATH="/usr/local/opt/ruby/bin:$PATH"

# rbenvのRubyインストール先
export PATH=$HOME/.rbenv/versions/3.1.0/bin:$PATH
export GEM_PATH=$HOME/.rbenv/versions/3.1.0/lib/Ruby/gems/3.1.0