概要
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
インストールしたコマンドラインツールを削除した