0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

古いrubyがMacにインストールできなくて困っているあなたへ

Last updated at Posted at 2020-03-14

これ何

古いruby(2.4以下のバージョン)がMacにインストールできなくて困っているあなたへ送るやつです。

なぜ古いrubyでビルドエラーが発生するのか

古いrubyではopenssl 1.1系しかない環境だとビルドエラーになる。
しかし、openssl1.0系をインストールしようとしてもここに書いてある通り、openssl 1.0系はEOLを迎えたのでhomebrewで素でインストールする事ができなくなっている。

どうするの?

以下のコマンドで無理やりインストールする。

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/64555220bfbf4a25598523c2e4d3a232560eaad7/Formula/openssl.rb

上記のコマンドの実行で、 /usr/local/Cellar/openssl/1.0.2t に OpenSSL 1.0.2t を入れることはできる。

さらにこんな感じでシンボリックリンク付け替えておかないとエラーになる。

$ cd /usr/local/opt
$ rm openssl
$ ln -s ../Cellar/openssl/1.0.2t openssl

あとはrbenvでrubyをインストールする時にこれを使えるようにしておく。

RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/Cellar/openssl/1.0.2t" rbenv install 2.3.8

大変面倒だが、bundle installする時にもopensslを参照しているので該当のリポジトリを触っている間は古いopensslを使いつづなければいけない・・・
bundle installが終わってサービスを起動したらopensslのシンボリックリンクを戻しておく。

$ cd /usr/local/opt
$ rm openssl
$ ln -s ../Cellar/openssl@1.1/1.1.1d openssl

そもそも・・・

本来であれば、EOLを迎えている物をインストールしようと試みること自体が良くない話なのだが、止むに止まれぬ事情で必要になる人もいると思ったので記録を残しておくことにしたのであった。

0
0
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?