Webalizer による Apacheログファイルを解析していますが、先日 FreeBSD ports をメンテナンスした後から、次のメッセージが表示され、レポート中にグラフが表示されないという問題が発生し始めました。
libpng warning: Application built with libpng-1.6.16 but running with 1.5.20 GD Warning: gd-png error: cannot allocate libpng main struct
libpng と libgd のバージョン依存関係に問題があるようです。
pkg info コマンドを使って、ports パッケージの依存関係を調べてみました。
> pkg info -d webalizer webalizer-2.23.8_3: libgd-2.1.0_5,1
まず、webalizer が libgd を必要としていて、liggd が libpng (png-1.6.16) を使うという依存関係にあるようです。
> pkg info -d libgd libgd-2.1.0_5,1: fontconfig-2.11.1,1 freetype2-2.5.4_1 tiff-4.0.3_5 png-1.6.16 jpeg-8_6
正直なところ、表示されているpng パッケージのバージョンは 1.6.16 なのでバージョンは問題ないと思いますが、動かないのは事実なので png をアンインストールしてインストールし直せばいいんじゃない?と考えました。
# pkg delete png Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 6 packages (of 0 packages in the universe): Installed packages to be REMOVED: png-1.6.16 xv-3.10a_16 netpbm-10.35.94_1 libgd-2.1.0_5,1 ja-xv-3.10a_16 webalizer-2.23.8_3 The operation will free 12 MB. Proceed with deinstalling packages? [y/N]:
依存関係にあるものが全部消えることになりますが、昔インストールした xv は今は必要無くなっているし、webalizer だけ復活すればいいので好都合かも。Yを選択して関連パッケージを全部削除し、webalizer を再インストールすることにしました。
# pkg install webalizer Updating FreeBSD repository catalogue... FreeBSD repository is up-to-date. All repositories are up-to-date. The following 3 packages will be affected (of 0 checked): New packages to be INSTALLED: webalizer: 2.23.8_3 libgd: 2.1.0_5,1 png: 1.6.16 The process will require 2 MB more space. 590 kB to be downloaded. Proceed with this action? [y/N]: y Fetching webalizer-2.23.8_3.txz: 100% 126 kB 129.5k/s 00:01 Fetching libgd-2.1.0_5,1.txz: 100% 198 kB 203.2k/s 00:01 Fetching png-1.6.16.txz: 100% 265 kB 272.3k/s 00:01 Checking integrity... done (0 conflicting) [1/3] Installing png-1.6.16... [1/3] Extracting png-1.6.16: 100% [2/3] Installing libgd-2.1.0_5,1... [2/3] Extracting libgd-2.1.0_5,1: 100% [3/3] Installing webalizer-2.23.8_3... [3/3] Extracting webalizer-2.23.8_3: 100%
削除したパッケージと比べて再インストールしたものは3個でしたが、webalizer コマンド発行時のメッセージは出なくなり、問題解決。
あとで気づいたのですが、UPDATING テキストをチェックしてみたところ、次の文がみつかりました。
20141225:
AFFECTS: users of graphics/png
AUTHOR: antoine@FreeBSD.org
The PNG library has been updated to version 1.6.16. Please rebuild all
ports that depend on it.
If you use portmaster:
portmaster -r png
If you use portupgrade:
portupgrade -fr graphics/png
png パッケージが更新されたのでリビルドせよとのこと。これが原因でした。