LoginSignup
0
0

More than 3 years have passed since last update.

Big Sur 環境の rbenv install で謎いエラーが出た時にやったこと

Posted at

Big Sur にアップグレード後、rbenvでrubyのバージョンをあげようとしたらハマった話です。
根本原因は特定できていませんが、これで出来たという結果だけ書いておこうと思います。同じような症状で何日も悩む人が一人でも減りますよう・・・🙏

やったことと現象

rbenv install -v 2.7.3 (3.0系でも同じでしたが) したら次のようなエラーがログに出力されていました。システムによって強制終了されている?っぽい。

-e:4:in `write': Interrupted system call @ rb_sysopen - failure.failed (Errno::EINTR)

解決した方法と原因かもしれないこと

方法その1
検索してみると、アンチウィルスソフトを無効化すると解消した、といったコメントがチラホラありました。私の環境では無効化が出来ないため試してはいませんが、まずはそれで解消するか確認してみると良いかもしれません。

方法その2
https://github.com/rbenv/ruby-build/issues/1706#issuecomment-758235089
↑このissueを社内の賢者から教えていただき、私はこれで解決しました。(圧倒的感謝)

ビルドオプションにopensslのディレクトリなどを指定していますが、おそらくそれだけでは解決しなくて(何度か試した時に解決しなかったので)、肝は MAKE_OPTS=-j1 の部分かなと思われます。思われますが確証はありません。

$ MAKE_OPTS=-j1 RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl) --with-readline-dir=$(brew --prefix readline) --with-libyaml-dir=$(brew --prefix libyaml)" ruby-build --verbose 2.7.3 ~/.rbenv/versions/2.7.3/
$ rbenv rehash

MAKE_OPTS=-j1 でmakeの並列数を1に限定するようです。これが必要だったように思われます。思われるだけで確証は(以下略

Big Surでアンチウィルスソフトが入っている環境では、makeのプロセス数と何か関係があるのかも?といった推測があがっていましたが、原因はまったく分かりません。分かりませんが、とにかくこれで解決しました。(それしか言えない)

ちなみに sudo rbenv install ... をしたらインストール自体は成功したのですが、rootによるインストールは様々な弊害をもたらし、railsの起動時にもっと困ったことになった・・・ということだけ書き残しておきます。(私と同じ轍は踏みませぬよう🙏)

0
0
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
0
0