以前やらかしたことを、またやらかしてしまったので、
再度動作できるようにするまでのメモ。
thoames.hatenadiary.jp
TL;DR
opensslが1.1系に書き換わってる可能性大!!!!
なので以下のことをすれば直った。
1) openssl1.0をインストール
2) /usr/local/opt/opensslのシンボリックリンクを1)でインストールしたパスに貼る。
3) brew switch openssl1.0のパスを直接していする。
経緯
原因は恐らく今度もXcode関係かbrew関係のコマンドを弄ったかが原因だと思われる。
Railsを起動しようとしたら、以下のエラーが出たため
他のサイトに書いてあるとおりに、一度消して再インストールするという同じ過ちを犯してしまった。
$ bundle exec rails s ... LoadError - library not found for class Digest::SHA1 -- digest/sha1 ...
今後は、Rails関係でサーバが立ち上がらないときは、必ず自分のメモを見るように肝に命じておきたい...
自分の場合は/usr/local/opt/opensslのシンボリックリンクが、openssl@1.1を向いていたので
これを古いバージョン(以前使用していたのは1.0.2q)へ向け直す必要があったので、brew switchと組み合わせて以下のようなコマンドで、なんとか2.3.1がインストールできた。ちなみに古いバージョンのopensslは「/usr/local/Cellar/openssl」に入っている。
$ brew switch openssl 1.0.2q $ RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/opt/openssl" rbenv install 2.3.1 $ rbenv rehash $ rbenv global 2.3.1 $ ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin18]
以前は上記での対応で良かったが、今回はなんと
「/usr/local/opt/openssl」のシンボリックリンクもなくなっており、
旧バージョンの「/usr/local/Cellar/openssl」もきれいに無くなっていた。
おいぃいいいい!!!どうなってる!!!!!!
以下のことをやったら直ったのでメモ
Openssl1.0のインストール
1.0系がきれいに消えているので再インストール
$ brew install rbenv/tap/openssl@1.0
インストールすると、「/usr/local/Cellar/openssl@1.0/1.0.2t」にインストールされる。
シンボリックの向きを1.0に向ける。
opensslのシンボリックリンクが消えていたので、1.0に向けて貼り直す。
$ cd /usr/local/opt $ ln -s ../Cellar/openssl@1.0/1.0.2t openssl
brew switchコマンドで、openssl1.0に向きを変える
$ brew switch openssl /usr/local/Cellar/openssl@1.0/1.0.2t
あとは、前の記事と同じようにRuby, bundler, mysqlをインストールし直した。
これで動作した。
[参考]
brew upgradeしたらopensslが1.1.1gになってしまいRailsが起動できなくなってしまったとき - Qiita