macportsのselfupdateに伴ったlibjpeg関連のトラブル
しばらく更新していなかったmacportsをselfupdateしてからwxPythonアプリケーションを起動しようとしたところ以下のようなエラーメッセージが出た。さらに調べてみるとxdviなど他のプログラムでも同様のエラーが出る。
$ python frontend.py Traceback (most recent call last): File "frontend.py", line 36, in <module> import wx File "/opt/local/lib/python2.5/site-packages/wx-2.8-mac-unicode/wx/__init__.py", line 45, in <module> from wx._core import * File "/opt/local/lib/python2.5/site-packages/wx-2.8-mac-unicode/wx/_core.py", line 4, in <module> import _core_ ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/wx-2.8-mac-unicode/wx/_core_.so, 2): Library not loaded: /opt/local/lib/libjpeg.62.dylib Referenced from: /opt/local/lib/libwx_macu-2.8.0.dylib Reason: image not found
どうやらlibjpegのバージョンがアップデートされた?ようなのでportコマンドで調べてみたもののlibjpegというパッケージが見つからない。あれこれ調べたらどうやらパッケージ名はlibjpegではなくてjpeg.
$ port installed jpeg The following ports are currently installed: jpeg @6b_3 jpeg @7_0 (active)
やっぱり新しくなっている。これを手がかりにネットで調べると同様の症状に悩まされた方が。
http://d.hatena.ne.jp/hacchy/20091229/1262065356
要は古いバージョンに戻せばいい。ということでやりました。
$ sudo port deactivate jpeg $ sudo port activate jpeg@6b_3 $ port installed jpeg The following ports are currently installed: jpeg @6b_3 (active) jpeg @7_0
これでエラーを吐いていたアプリケーションが正常に動作するようになった。
これまでパッケージ管理ソフトをアップデートすることで解決したトラブルはたくさん遭遇したけれど、アップデートによってトラブルに遭遇したケースははじめてな気がする。