xcrun: error: invalid active developer path エラーの対処法

2023/10/17に公開

rubyのバージョンを3.2.2に変更しようとしたらエラーが出たお話。

実行環境:
・ruby2.6.10
・macOS Monterry バージョン12.6.5(Intel Corei5)

実行コマンド:

rbenv install 3.2.2

エラー内容:

BUILD FAILED (macOS 12.6.5 using ruby-build 20231014)

Inspect or clean up the working tree at /var/folders/70/f48336ys4nvclskl8mt2gkh40000gp/T/ruby-build.20231017203924.65490.2LOTin
Results logged to /var/folders/70/f48336ys4nvclskl8mt2gkh40000gp/T/ruby-build.20231017203924.65490.log

Last 10 log lines:
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL.md file first)      ***
***                                                                ***
**********************************************************************
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

調べたところ、どうやらXCodeのxcrunコマンドに参照問題が生じているらしい。
以下のコマンドを実行。

xcode-select --install

さらにバージョン変更するには以下のコードを試みた。

RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC rbenv install 3.2.2

なんかうまくいっているようだ。

To follow progress, use 'tail -f /var/folders/70/f48336ys4nvclskl8mt2gkh40000gp/T/ruby-build.20231017211758.66021.log' or pass --verbose
Downloading openssl-3.1.3.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/f0316a2ebd89e7f2352976445458689f80302093788c466692fb2a188b2eacf6
Installing openssl-3.1.3...
Installed openssl-3.1.3 to /Users/unohiromi/.rbenv/versions/3.2.2

Downloading ruby-3.2.2.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz
Installing ruby-3.2.2...
ruby-build: using readline from homebrew
ruby-build: using libyaml from homebrew
ruby-build: using gmp from homebrew
Installed ruby-3.2.2 to /Users/unohiromi/.rbenv/versions/3.2.2

rubyのバージョンを確認してみる。

ruby -v

あれ、変わってない...

ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin21]

さらに調べて、以下を実行。

rbenv local 3.2.2
rbenv global 3.2.2
gem install railties && rbenv rehash

すると、またまたエラーが...

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.

今度はどうやらシステムのrubyを利用しているので、権限不足でgemのインストールができないらしい。
rbenvはインストール済みなので、シェルの設定ファイル(今回は.zshrc)に以下を追加し、rbenvにパスを通してみた。

vi .zshrc

以下を記述して、ターミナルを再起動する。

[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

ターミナルのログインにaliasコマンドでreloginを設定。

alias relogin='exec $SHELL -l'

すると、バージョン変更に成功しました!

ruby -v                                                                                                                                   
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin21]

めでたし。めでたし。(ちゃんと理解できてないので、めでたくはない...)

Discussion