環境
macOS High Sierra 10.13.2
Docke for Mac 17.12_0-ce-mac47
起きたこと
仕事用のMacをSierraからHigh Sierraにバージョンアップしたところ、
Docker start hogehogeした時に下記のエラーでコンテナが起動できなくなりました。
dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /usr/local/lib/libJPEG.dylib
in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Abort trap: 6
原因
こちらの記事によると、
Homebrewでインストールしたlibjpegに__cg_jpeg_resync_to_restartという関数が存在しないのが原因とのこと。
対処法
単純にbrew uninstall jpegをすると今度は他のエラーが(当然ですが)出るのでこれはできません。
なのでいささか気持ち悪いですが、brewで入れたlinjpegは物理的には残しつつシステム標準のlibjpegを使って欲しい。
というわけで.bash_profileに以下を追記しました。
~/.bash_profile
export DYLD_LIBRARY_PATH=/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/:$DYLD_LIBRARY_PATH
これで無事起動。
色々と釈然としませんがとりあえず動かさないと仕事にならないのでこれでよしということにします。
参考
dyld: Symbol not found: __cg_jpeg_resync_to_restart
Using on OS X: 'Symbol not found: __cg_jpeg_resync_to_restart'