macOS Big Surに更新した頃から (?) 色々なコマンドで dyld: Library not loaded: /path/to/foo.dylib
というようなエラーが出るようになり,それを解決したのでメモしておきます.
結論としては,シェルの起動時にDYLD_SHARED_REGION
という環境変数をavoid
に設定していることが原因でした.DYLD_SHARED_REGION
は,デフォルトではuse
に設定されているようですが(https://www.unix.com/man-page/OSX/1/dyld/ ),あえてこれを変更してしまっていたようです.このため,この設定を削除する(fish.config
や.bash_profile
から削除する)ことで問題は解決しました.
環境
- OS:macOS Big Sur 11.2.1
- シェル:fish 3.1.2 や bash 3.2.57
エラー内容
エラーとしては以下のようなものが出ていました.
git
dyld: Library not loaded: /usr/lib/libz.1.dylib
Referenced from: /usr/local/bin/git
Reason: image not found
fish: 'git' terminated by signal SIGABRT (Abort)
fishでcdした時に出るエラー
$ cd ..
fish: Job 2, 'command awk -v path="$PWD" -v n…' terminated by signal SIGABRT (Abort)
awk
$ awk
dyld: Library not loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
Referenced from: /usr/local/bin/awk
Reason: image not found
fish: 'awk' terminated by signal SIGABRT (Abort)
修正
{..bash_profile}
export DYLD_SHARED_REGION=avoid # <- 削除
{fish.config}
set -x DYLD_SHARED_REGION avoid # <- 削除