gitやsshコマンドを使うと “dyld: Library not loaded: /usr/local/opt/ldns/lib/libldns.3.dylib” というエラーが発生したので対処しました。

Bash,Mac

はじめに

おはようございます。

僕の毎日の業務はすべてのリポジトリをシェルスクリプトで git fetch して回ることから始まります。

今朝もルーチンを実行したところ、 dyld: Library not loaded: /usr/local/opt/ldns/lib/libldns.3.dylib というエラーメッセージが表示され git fetch ができませんでした。ssh コマンドも利用できないようです。

対処できたので共有します。

検証環境

$ uname -moi
x86_64 MacBookPro16,1 Darwin

$ bash -version | head -n 1
GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)

$ git --version
git version 2.29.2

$ ssh -V
OpenSSH_8.5p1, OpenSSL 1.1.1j  16 Feb 2021

$ brew --version
Homebrew 3.0.4-50-ga930e2b
Homebrew/homebrew-core (git revision f7c3c5df5a; last commit 2021-03-06)
Homebrew/homebrew-cask (git revision 580e78f8f1; last commit 2021-03-06)

発生していた現象

git fetchssh コマンドを実行すると、エラーが発生。

コマンド実行とその際に発生してたエラーメッセージは以下のようなものでした。

$ git fetch
dyld: Library not loaded: /usr/local/opt/ldns/lib/libldns.3.dylib
  Referenced from: /usr/local/bin/ssh
  Reason: image not found
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

原因

お恥ずかしながら、原因が特定できませんでした。

といっても、軽くGoogle検索した程度でしたが(^_^;)

Dyanmic Library といって、実行時に読み込むライブラリが正しく読み込みできない状態になっているということでした。

今回問題になっているライブラリは ldns というものになります。

対策

エラーメッセージどおり、 ldns というライブラリをなんとかできれば良いので、再インストールしてみました。

$ brew reinstall ldns
==> Downloading https://homebrew.bintray.com/bottles/ldns-1.7.1_3.big_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/998f245038aacbe7e2a953bd4ede86f0175c3c00ea71e3b9a14a134c1d2ca4cd?response-content-disposition=attachment%3Bfilename%3D%22ldns-1
######################################################################## 100.0%
==> Reinstalling ldns
==> Pouring ldns-1.7.1_3.big_sur.bottle.tar.gz
🍺  /usr/local/Cellar/ldns/1.7.1_3: 571 files, 6.1MB

再インストール後、 git fetch を再実行してみました。

$ git fetch
From ssh://github.com/xxx/yyy
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 9 (delta 5), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), 1.78 KiB | 455.00 KiB/s, done.
   b2f5034..092d088  develop    -> origin/develop

正常に動作するようになりました!

ひとこと

他のダイナミックライブラリでエラーが発生した場合についても、一度上記の手順を試してみてください。
詳しい方、コメント欄でぜひ情報を教えて下さい。

Bash,Mac