macOSのアップデートとcommand line tools for xcodeの導入
macOSをMontereyにアップグレードしようとしたらストレージが足らないと怒られた。
なので、一時的にXcodeをアンインストールしてストレージを稼いで、あとでXcodeは再インストールしようと目論んだ。
無事OSをMontereyにアップグレード
ところが、ちょっと心配していたことが起きてしまう。Xcodeを再インストールしようとしたら容量が足りないらしい。
XcodeがないとHOMEBREWがなくなって、rubyもrailsも開発環境が復帰できない....
そこで、過去に試して挫折していた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