だいたいのことはわかるとなんてことはないんだけれども、わかるまではたいへんですね。
$ rbenv install 2.5.1
ruby-build: use openssl from homebrew
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
Installing ruby-2.5.1...
ruby-build: use readline from homebrew
BUILD FAILED (OS X 10.13.6 using ruby-build 20180822)
Inspect or clean up the working tree at /var/folders/qn/21yqw2396zl26pmq6tq0sw9c0000gn/T/ruby-build.20181019123602.65838
Results logged to /var/folders/qn/21yqw2396zl26pmq6tq0sw9c0000gn/T/ruby-build.20181019123602.65838.log
Last 10 log lines:
/usr/local/include/Block.h:263:2: error: unknown type name 'lzma_bool'
lzma_bool reserved_bool2;
^
/usr/local/include/Block.h:264:2: error: unknown type name 'lzma_bool'
lzma_bool reserved_bool3;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [file.o] Error 1
make: *** Waiting for unfinished jobs....
気軽に rbenv install したら怒られました(´・ω・`)
エラーログ書いておいたから読めよ。って言われたので見ます。
/usr/local/include/Block.h:16:3: error: Never include this file directly. Use <lzma.h> instead.
# error Never include this file directly. Use <lzma.h> instead.
^
こんなん書いてありました。 Block.h 使うんじゃねえよ、 lzma.h 使えよ常考。って言われたので、 lzma.h とやらを探しましょうかね。
$ ls /usr/local/include/lzma.h
/usr/local/include/lzma.h
あるやんけ。
ここから深い迷宮に迷い込んだんですが、迷った道筋をいくつか
- lzma.h 入れ直したらいけるじゃろ -> brew install xz -> 関係なかった
- gcc のライブラリのパス通ってないんじゃね -> export LD_LIBRARY_PATH=/usr/local/include -> お門違い
結局世界のお友達によれば
brew がどう管理してんのかしらんけれども Block.h 使うなよ。手で記述削除しろや
まじすか。
/usr/local/include 使ってっからダメみたいよ。 /usr/local/include_old って名前にしてみ
まじすか。
まじだった。
なるほど。 察するに high sierra より前のバージョンだと、 /usr/local/include 使ってたけれども、今は /usr/include を使っていると。で、同名のファイルがあったら、古い /usr/local/include を先に見ちゃうんだ。ってことみたいですね。
別のアプローチで情報探していればすぐにわかったっぽいですな。だから誰も詰まらないわけで、記事にもならんと。自分は書くけれども。
2019-04-18 追記
この /usr/local/include を mv してしまうことで brew 経由で postgresql がうまくインストールできない問題が発生しました。参考された方々ほんとに申し訳ないです(´・ω・`)
https://qiita.com/ninjaninja/items/f9dcdca92d1ef9847b5d
こちらの記事にそのトラブルの経緯を書いております。
簡単にいうと、 mv したあとに、 空の /usr/local/include ディレクトリを作ってください。それで問題はおきなくなります。