cap production deploy で libcrypto.1.0.0.dylib のロードエラー

久しぶりに cap production deploy したら下記のエラーが出た。

/Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:121:in require': dlopen(/Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/x86_64-darwin14/digest/sha1.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (LoadError) Referenced from: /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/x86_64-darwin14/digest/sha1.bundle Reason: image not found - /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/x86_64-darwin14/digest/sha1.bundle from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:121:inrequire'
from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/sshkit-1.11.5/lib/sshkit/command.rb:1:in <top (required)>' from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/sshkit-1.11.5/lib/sshkit/all.rb:7:inrequire_relative'
from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/sshkit-1.11.5/lib/sshkit/all.rb:7:in <top (required)>' from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/sshkit-1.11.5/lib/sshkit.rb:26:inrequire_relative'
from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/sshkit-1.11.5/lib/sshkit.rb:26:in <top (required)>' from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:121:inrequire'
from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:121:in require' from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/capistrano-3.4.1/lib/capistrano/all.rb:2:in'
from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in require' from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:inrequire'
from /Users/xxx/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/capistrano-3.4.1/bin/cap:2:in <top (required)>' from /Users/xxx/.rbenv/versions/2.2.0/bin/cap:23:inload'
from /Users/xxx/.rbenv/versions/2.2.0/bin/cap:23:in `
'

対処を調べると brew update && brew upgrade すると治るという情報をいくつか見つけたため、実行。

https://qiita.com/kota-es/items/98ae6ee84fc59aaae2ea

すると、長時間(1時間以上?)かかったあげく macOS のバージョンが古くて対応していないとのエラーが…。早く言ってよ。

重い腰を上げて Catalina にアップデートし、再実行。
特にエラーなく終わったのだが、cap production deploy では同じエラーが再発。

改めて調べると、openssl のバージョンを切り替えればいけたという情報を見つけた。

https://www.autovice.jp/articles/62

症状的にも似ているのでこれか!?

念の為、brew list でバージョンを確認すると下記の通り。

$ brew list --versions
openssl 1.0.2n 1.0.2l 1.0.2
openssl@1.1 1.1.1f

なんかいっぱい入っているな…。意を決して実行してみるとエラー。

$ brew switch openssl 1.0.2s
Error: openssl does not have a version "1.0.2s" in the Cellar.
openssl's installed versions: 1.0.2, 1.0.2l, 1.0.2n

既に入っているバージョンしか switch できないようですね。というわけで、brew switch openssl 1.0.2n なら OK。

これで無事 cap production deploy できるようになりました。

コメントを残す