LoginSignup
11
11

More than 1 year has passed since last update.

Xcode(CommandLineTools)14系を使っていると古めのRubyがインストールできない問題

Last updated at Posted at 2022-09-27

こんにちはRUNTEQで開発TA(エンジニア & 講師の補佐)をしているふぁらおです
最新版のXcode(についてくるCommandLineTools)の14系を使っているとrbenv経由でrubyがインストール出来ないという問題が発生しているみたいなので対処法を書いていきます

実行結果

❯❯❯rbenv install 2.6.3                                                                               +[21_admin_login]
Downloading openssl-1.1.1q.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca
Installing openssl-1.1.1q...
patching file test/v3ext.c
Installed openssl-1.1.1q to /Users/kenchaso/.anyenv/envs/rbenv/versions/2.6.3

Downloading ruby-2.6.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.bz2
Installing ruby-2.6.3...
ruby-build: using readline from homebrew

BUILD FAILED (macOS 12.6 using ruby-build 20220726)

Inspect or clean up the working tree at /var/folders/kx/g8d12w2x353c1lqh93cvl2380000gn/T/ruby-build.20220927104044.36659.2Yluin
Results logged to /var/folders/kx/g8d12w2x353c1lqh93cvl2380000gn/T/ruby-build.20220927104044.36659.log

Last 10 log lines:
transform_mjit_header: SKIPPED to transform __inline_isinff
transform_mjit_header: SKIPPED to transform __inline_isfinitel
transform_mjit_header: SKIPPED to transform __inline_isfinited
transform_mjit_header: SKIPPED to transform __inline_isfinitef
transform_mjit_header: SKIPPED to transform __darwin_fd_clr
transform_mjit_header: SKIPPED to transform __darwin_fd_set
transform_mjit_header: SKIPPED to transform __darwin_fd_isset
transform_mjit_header: SKIPPED to transform __darwin_check_fd_set
transform_mjit_header: SKIPPED to transform __sputc
ln -sf ../../../.ext/include/-darwin21/rb_mjit_min_header-2.6.3.h include/ruby-2.6.0/-darwin21/rb_mjit_min_header-2.6.3.h

対処法1

2022/11/9追記(homebrewのパスの関係でM1・M2用です)

一旦シェルを再起動してrubyがインストール出来るか確認する

exec $SHELL -l
RUBY_CFLAGS="-w" rbenv install 2.6.10

インストール出来なかったら以下の手順を試してみてください

libffiのインストール

brew list libffiで確認してlibffiが入っていなかったらインストールしてください

brew install libffi

環境変数の設定

export optflags="-Wno-error=implicit-function-declaration"
export LDFLAGS="-L$(brew --prefix libffi)/lib"
export CPPFLAGS="-I$(brew --prefix libffi)/include"
export PKG_CONFIG_PATH="$(brew --prefix libffi)/lib/pkgconfig"

で環境変数の設定をします

インストールの実行

RUBY_CFLAGS="-w" rbenv install 2.6.10

(どのオプションが関係するかは分かってないのでわかる人いたら教えてください)

対処法2

venturaを使っているとCLTの13系がインストール出来ないのでこの方法は使えません

自分のCommandLineToolsのバージョンを確認する

brew --configpkgutil --pkg-info=com.apple.pkg.CLTools_Executablesというコマンドを使って確認出来ます
CommandLineTools(CTLって書いてあるやつ)のバージョンが14系かどうか確認してください

❯❯❯brew --config
HOMEBREW_VERSION: 3.6.3
ORIGIN: https://github.com/Homebrew/brew
HEAD: d5b6b068c15a8df60f0f5e34a4ca80dcf82c48e3
Last commit: 16 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 65d11ec6b84ef4f4ab513db3c69dd7824a586510
Core tap last commit: 3 hours ago
Core tap branch: master
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.oQNKZJBazk/org.xquartz:0
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 2.6.8 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/2.6.8_1/bin/ruby
CPU: octa-core 64-bit arm_firestorm_icestorm
Clang: 13.1.6 build 1316
Git: 2.37.2 => /opt/homebrew/bin/git
Curl: 7.79.1 => /usr/bin/curl
macOS: 12.6-arm64
CLT: 13.4.0.0.1.1651278267
Xcode: 14.0
Rosetta 2: false

一旦CommandLineToolsを消す

sudo rm -rf /Library/Developer/CommandLineTools

CommandLineToolsの13系をインストールする

https://developer.apple.com/download/all/
からCommand Line Tools for Xcode 13.4を探してダウンロード
その後ダウンロードしたインストーラーに従ってインストールする

rubyを入れましょう

rbenv install 2.6.3

最後に

何か間違っていたりしたら教えてくださると助かります

参考

https://bugs.ruby-lang.org/issues/18912#note-11
http://voidptr.seesaa.net/article/397330524.html
https://zenn.dev/noraworld/articles/ruby-installation-m1-mac

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11