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:inrequire': 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:in
require' 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:in
require_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:in
require_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:in
require' 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/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:inrequire' 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/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:in
load' 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 できるようになりました。
コメントを残す