OpenSSLが予期せず1.1にバージョンアップして、rails s が起動しなくなった場合の対処法

## 発生した問題

`brew update && brew upgrade node-build` というコマンドを実行したところ、予期せずOpenSSLのバージョンが1.0から1.1に上がってしまった。
その結果、`rails s`したときに以下のようなエラーが出てサーバーが起動しなくなった。

```
$ rails s
Traceback (most recent call last):
    46: from bin/rails:4:in `<main>'
    45: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `require'
    44: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:257:in `load_dependency'
（略）
     3: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
     2: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
     1: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': dlopen(/Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/pg-1.2.3/lib/pg_ext.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /usr/local/opt/postgresql@9.6/lib/libpq.5.dylib
  Reason: image not found - /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/pg-1.2.3/lib/pg_ext.bundle
```

どうやらPostgreSQLがopenssl1.0の`libssl.1.0.0.dylib`というライブラリを参照していて、それが見つからなくなったのがエラーの原因っぽい。

## 解決策

シンボリックリンクを使って、OpenSSL1.0時代のライブラリを（仮想的に）復活させる。

```
ln -s /usr/local/opt/openssl/lib/libssl.1.1.dylib /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
```

ただし、これだけでは以下のような別のエラーが出る。

```
$ rails s                                                                                        
Traceback (most recent call last):
    46: from bin/rails:4:in `<main>'
    45: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `require'
    44: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:257:in `load_dependency'
（略）
     3: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
     2: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
     1: from /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': dlopen(/Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/pg-1.2.3/lib/pg_ext.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (LoadError)
  Referenced from: /usr/local/opt/postgresql@9.6/lib/libpq.5.dylib
  Reason: image not found - /Users/jnito/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/pg-1.2.3/lib/pg_ext.bundle
```

というわけで、`libcrypto.1.0.0.dylib`も同様に復活させる。

```
ln -s /usr/local/opt/openssl/lib/libcrypto.1.1.dylib /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
```

これで`rails s`でサーバーが起動するようになった。

（ほかに何かもっと適切な解決策があれば教えてください！）

### 追記

Rubyをビルドし直す、という方法もあるようです。（同僚の@pi_chanからの情報）

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Rubyビルドし直したわー <a href="https://t.co/lu0XHOIVeD">https://t.co/lu0XHOIVeD</a></p>&mdash; 大野ぴーちゃん (@pi_cha_n) <a href="https://twitter.com/pi_cha_n/status/1253164782250688513?ref_src=twsrc%5Etfw">April 23, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>