はじめに
いつものようにRailsアプリのデプロイを行おうとしたところ、以下のエラーが出力されました。
$ bundle exec cap production deploy
bundler: failed to load command: cap (/Users/user/.rbenv/versions/2.6.3/bin/cap)
LoadError: dlopen(/Users/user/.rbenv/versions/2.6.3/lib/ruby/2.6.0/x86_64-darwin18/digest/sha1.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /Users/user/.rbenv/versions/2.6.3/lib/ruby/2.6.0/x86_64-darwin18/digest/sha1.bundle
Reason: image not found - /Users/user/.rbenv/versions/2.6.3/lib/ruby/2.6.0/x86_64-darwin18/digest/sha1.bundle
...
ほんの数時間前まで正常にデプロイできていたのに、いきなりできなくなってしまいました...
調査
エラーメッセージを見ると、Capistranoで使用されているライブラリの一部がロードされていないようです。
libssl.1.0.0.dylib
というライブラリですが、削除はもちろん、設定をいじったりなどした覚えはありません。
エラーメッセージで検索したら以下のページがヒットしました。
swift - dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib - Stack Overflow
対処
上記ページの通り以下のコマンドを実行したところ、正常にデプロイできるようになりました。
$ brew switch openssl 1.0.2s
Cleaning /usr/local/Cellar/openssl/1.0.2s
Opt link created for /usr/local/Cellar/openssl/1.0.2s
まとめ
macOSのアップデートによるものなのか、原因はわかっていません。
ちょうどLaravelをいじっているところだったので、それが関係しているのか否か…