いきなりRailsアプリのデプロイが失敗するようになった... 「bundler: failed to load command: cap」の解決方法

2020年2月23日 22:30

はじめに

いつものように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をいじっているところだったので、それが関係しているのか否か…

関連記事

【Rails】Webサーバー「Unicorn」の基本情報と実装方法
# はじめに Railsアプリを本番環境で稼働させるには、クライアントからのリクエストを捌くWebサーバーを導入する必要があります。WebサーバーはクライアントからのリクエストをRailsアプリに伝達し、Railsアプリで処理されたレスポンスをク [...]
2021年4月15日 12:17
【Rails】デプロイツール「Capistrano」の基本情報と実装方法
# はじめに アプリを本番環境にアップロードして誰でもアクセスできる状態にすることをデプロイと言います。デプロイで行うべきことは多岐にわたります。Railsアプリの場合で言えば、本番環境にアップロードすることはもちろんですが、Gemのインストール [...]
2021年4月14日 9:56
【Rails】Webpackerの基本情報と実装方法
# はじめに Rails 6からWebpackerが正式採用されました。Rails 5ではオプションで追加することができたWebpackerですが、Rails 6からは普通にアプリを作成するだけでWebpackerがインストールされ、必要な設定も [...]
2021年4月12日 14:36
【Rails】アセットパイプライン(Sprockets)の基本情報と実装方法
# はじめに Ruby on Railsにはアセットパイプラインという機能があります。アセットパイプラインは画像、CSS、JavaScriptといったアセットファイルを連結/圧縮することでRailsアプリを高速化します。また、より高級な言語で書か [...]
2021年4月11日 14:08
【Rails】Turbolinksの基本情報と実装方法
# はじめに Ruby on Railsにはページの遷移を高速化するTurbolinksという機能があります。Turbolinksは優れたJavaScriptライブラリですが、Rails 5からは標準で有効化されているため、Turbolinksを [...]
2021年4月10日 17:59