ソフトウェアエンジニア現役続行

雑多なことを綴ります

rpmスペックファイルの%config

RedHat系のLinuxディストリビューションではRPMでパッケージ管理を行います。RPMスペックファイルで、%configをつけるとそのファイルは設定ファイルとして認識されます。%configでは、noreplaceとmissingokを指定することができます。第5章 SPECファイルの記述 - 5.3. ファイルリスト部 - vinelinux.orgを参考にしました。

noreplaceで、ファイルを置き換えさせない

%configではnoreplaceを設定すると、このファイルが変更されていた場合、 アップグレード時に新しいファイルに置き換えずにもとのファイルをそのまま使われます。

%config(noreplace)

missingokで、ファイルがなくても大丈夫

%configでmissingokも指定すると、存在しなくても問題ないファイルの場合に使います。これは、rpmコマンドの -V オプションでチェックした時に、 ファイルが無くてもエラーにならないようにするためのものです。

%config(missingok)

デフォルトはnoreplace

noreplaceもmissingokも省略した場合にどうなるかデフォルト値についての記述は、どのドキュメントにもありませんでしたが、試したところnoreplaceがデフォルトであることが分かりました。

%config (←noreplaceと同じ扱い)