RHEL5/CentOS 5には標準でdoxygen-1.4.7が提供されています。しかし、UTF-8環境で使うには、UTF-8対応したdoxygen-1.5.2以降が欲しくなります。
そこで、doxygenソースをダウンロードし、RPMパッケージを作成して自分用yum更新サイトに置いたのですが、yumで一覧を見てもdoxygenの1.5.xが見えません。
一方、同時に置いたdoxygen-debuginfoは見えているので、どうやらCentOSのbase/updateにあるdoxygenパッケージと同名(でバージョン番号だけ異なる)パッケージを別なサイトに置いても隠れてしまうようです。
回避手段
yumのオプション --disablerepo=* --enablerepo=xxx の様に、隠れてしまったパッケージを置いたxxxサイトだけ有効にする方法はあります。但し、無効にしたCentOS標準サイトに依存するパッケージがあると厄介です。エラーになったパッケージを先に入れてから・・・とyumのメリットが失われてしまいます。
パッケージ名を変えて作成するのがよいのかなぁ。。。
追記(11/9)
doxygenの場合、CentOS 5の標準パッケージdoxygen-1.4.7-1.1.i386.rpmは、Epochと呼ばれる特殊なバージョン指定が付加されています。Epochはあちこちの文献で「使用すべきでない」と言われている仕組みなのですが・・・
そこで、Epoch番号を明示的に指定して最新doxygenパッケージを作成するのが解決策として適していると思います。
Epochを含めたバージョン番号
通常一覧で見る限り、Epoch番号は隠れています。--providesオプションで見ることができます。
$ rpm -q doxygen
doxygen-1.4.7-1.1
$ rpm -q --provides doxygen
doxygen = 1:1.4.7-1.1
$
Epoch番号が指定されていないRPMパッケージは、Epoch=0と見なされます。rpmのバージョン番号の比較では、最初にEpoch番号の大小比較で新旧がチェックされます。
- 1:1.4.7-1.1 (Epoch=1, Version=1.4.7, Release=1.1)
- 1.5.6-1 (Epoch=0[未指定のデフォルト], Version=1.5.6, Release=1)
上記の2つのバージョンは、前者が新しいバージョンと認識されてしまいます。
このため、CentOSの標準パッケージにあるdoxygen(1:1.4.7-1.1)と、自分の更新サイトにあるdoxygen(0:1.5.6-1)をyumが読み込んだ際に新しいバージョンと見なしたCentOS標準パッケージのdoxygen-1.4.7-1.1を表示していたようです。