概要
gem install --user-install ffi -- --enable-libffi-alloc
ターミナルで上記のコマンドを実行したら
Ignoring ffi-1.15.5 because its extensions are not built. Try: gem pristine ffi --version 1.15.5 Ignoring json-1.8.6 because its extensions are not built. Try: gem pristine json --version 1.8.6 Fetching ffi-1.16.3.gem WARNING: You don't have /Users/baba-s/.gem/ruby/2.6.0/bin in your PATH, gem executables will not run. Building native extensions with: '--enable-libffi-alloc' This could take a while... ERROR: While executing gem ... (Errno::EACCES) Permission denied @ dir_s_mkdir - /Users/baba-s/.gem/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/ffi-1.16.3
上記のエラーが出た
sudo gem install --user-install ffi -- --enable-libffi-alloc
sudo
を付けてコマンドを実行したら
Password: Ignoring ffi-1.15.5 because its extensions are not built. Try: gem pristine ffi --version 1.15.5 Ignoring json-1.8.6 because its extensions are not built. Try: gem pristine json --version 1.8.6 Fetching ffi-1.16.3.gem WARNING: You don't have /Users/baba-s/.gem/ruby/2.6.0/bin in your PATH, gem executables will not run. Building native extensions with: '--enable-libffi-alloc' This could take a while... ERROR: Error installing ffi: ERROR: Failed to build gem native extension. current directory: /Users/baba-s/.gem/ruby/2.6.0/gems/ffi-1.16.3/ext/ffi_c /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20240412-63830-11oy4rr.rb extconf.rb --enable-libffi-alloc *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/$(RUBY_BASE_NAME) --with-ffi_c-dir --without-ffi_c-dir --with-ffi_c-include --without-ffi_c-include=${ffi_c-dir}/include --with-ffi_c-lib --without-ffi_c-lib=${ffi_c-dir}/lib --enable-debug --disable-debug --enable-system-libffi --disable-system-libffi --with-libffi-config --without-libffi-config --with-pkg-config --without-pkg-config /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:546:in `block in try_link0' from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/tmpdir.rb:93:in `mktmpdir' from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:543:in `try_link0' from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:570:in `try_link' from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:672:in `try_ldflags' from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1832:in `pkg_config' from extconf.rb:9:in `system_libffi_usable?' from extconf.rb:46:in `<main>' To see why this extension failed to compile, please check the mkmf.log which can be found here: /Users/baba-s/.gem/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/ffi-1.16.3/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /Users/baba-s/.gem/ruby/2.6.0/gems/ffi-1.16.3 for inspection. Results logged to /Users/baba-s/.gem/ruby/2.6.0/extensions/universal-darwin-22/2.6.0/ffi-1.16.3/gem_make.out
エラーの内容が変化した
xcode-select --install
上記のコマンドを実行して Xcode のコマンドラインツールをインストールして
sudo gem install --user-install ffi -- --enable-libffi-alloc
もう一度上記のコマンドを実行してみてもエラーが変わらなかった
xcode-select -print-path
上記のコマンドで使用しているコマンドラインツールを確認したら
/Applications/Xcode15.2.app/Contents/Developer
Xcode 内臓のコマンドラインツールが設定されていたので
sudo xcode-select -switch /Library/Developer/CommandLineTools
上記のコマンドを実行して、xcode-select --install
でインストールした
コマンドラインツールを使うようにして
sudo gem install --user-install ffi -- --enable-libffi-alloc
もう一度上記のコマンドを実行してみたら
Ignoring ffi-1.15.5 because its extensions are not built. Try: gem pristine ffi --version 1.15.5 Ignoring json-1.8.6 because its extensions are not built. Try: gem pristine json --version 1.8.6 WARNING: You don't have /Users/baba-s/.gem/ruby/2.6.0/bin in your PATH, gem executables will not run. Building native extensions with: '--enable-libffi-alloc' This could take a while... Successfully installed ffi-1.16.3 Parsing documentation for ffi-1.16.3 Installing ri documentation for ffi-1.16.3 Done installing documentation for ffi after 13 seconds 1 gem installed
成功した
インストールした Xcode のコマンドラインツールが不要になったので
sudo xcode-select -switch /Applications/Xcode15.2.app/Contents/Developer
上記のコマンドで Xcode 内臓のコマンドラインツールを使うように変更して
sudo rm -rf /Library/Developer/CommandLineTools
インストールしたコマンドラインツールを削除した