5.3. ファイルリスト部

%filesはじまる部分で、rpmパッケージにつめこむファイル名を列挙します。 このとき以下に注意してください。

rpmコマンドは、specファイルに基づいてrpmパッケージを作るときに、 Section 5.2, “スクリプト部”で設定した一連のスクリプトを実行した後、 ${RPM_BUILD_ROOT}をとみなして%files以下で指定されたファイルを回収し、 それを指定位置にinstallするようなrpmパッケージをつくります。

%config %attr %verify などは、次のようにスペースを入れることで一つのファイルに複数指定できます。

%config %verify(not size,md5,mtime) /etc/hoge.conf

この%filesの指定は少々面倒なとこかもしれません。 新しくパッケージをつくる場合などは、%install までのスクリプト部を書いたところで、%files以下は何も書かないまま、一度、そのspecファイルから rpm をbuildしてみるとよいかもしれません。(rpm -bi hoge.spec これについては次節)。 そのあとで、${RPM_BUILD_ROOT}以下にinstallされてるファイルを、find コマンドで見てみて%filesの指定をします。

%filesで書かれていないファイルがある場合には、build 時に

パッケージに未収録のファイルを検査中: /usr/lib/rpm/check-files /var/tmp/hoge-1.1-root
警告: パッケージに未収録のインストール済みファイルが見つかりました:

と未収録のファイルの名前などが表示されます。 この部分を利用して %files の部分を作成するのもよいでしょう。

ソースのバージョンアップなどで、作成されるファイルが増減したり、ディレクトリが変わったりする場合があります。未収録のファイルがあっても、build が途中で終了せず、パッケージを作成できてしまう場合があるので、build 時のメッセージは必ず確認してください。



[2] Requires で他のパッケージをまとめてインストールしたり、%post, %preun, %postun などで何らかのコマンド処理を行うようなパッケージ。task-gnome や task-tetex などのように task- という名前が使われます。