web-dev-qa-db-ja.com

RPMをビルドするときにファイルが2回リストされるのはなぜですか?

私の理解では、%filesリストの下に%dirディレクティブを指定すると、RPMはそのディレクトリの下のファイルをリストしません。これを行うと、問題のディレクトリ(またはユーザー、グループなど)に特定のアクセス許可を設定できます。ただし、指定されたディレクトリに加えて、ファイルを明示的にリストすると、「ファイルが2回リストされました」というメッセージが表示されます。これは私が知っている気難しいように聞こえますが、ファイルにはディレクトリに対する異なるアクセス許可があるため、%dirディレクティブを使用してディレクトリを個別に定義する必要があります。

%dirディレクティブを使用していなかった場合は、はい、これらの警告メッセージが表示されると思います。

私は正しいですか?

更新:

実際、2回リストされたファイルは、%dirディレクティブと%configディレクティブを組み合わせた場合にのみ表示されるようです。

したがって、警告メッセージがなくても、以下は問題ありません。

%files
%dir %attr(0755,testuser,test) /app/product/tracking-tool/bin/
%dir %attr(0755,testuser,test) /app/product/tracking-tool/bin/scripts/

%attr(0755,vscc_prod,vscc) /app/product/tracking-tool/bin/run.sh
%attr(0755,vscc_prod,vscc) /app/product/tracking-tool/bin/count.sh
%attr(0755,vscc_prod,vscc) /app/product/tracking-tool/bin/delete.sh
%attr(0755,vscc_prod,vscc) /app/product/tracking-tool/bin/scripts/script1.sh

ただし、次の結果、警告メッセージが表示されます。

%config %dir %attr(0755,testuser,test)  /app/product/tracking-tool/config/
%config %dir %attr(0755,testuser,test)  /app/product/tracking-tool/config/properties
%config %dir %attr(0755,testuser,test)  /app/product/tracking-tool/config/other

%config %attr(0644,testuser,test)  /app/product/tracking-tool/config/xmlconfig.xml
%config %attr(0644,testuser,test)  /app/product/tracking-tool/config/properties/logging.properties
%config %attr(0600,testuser,test)  /app/product/tracking-tool/config/properties/test.txt
%config %attr(0600,testuser,test)  /app/product/tracking-tool/config/other/other.txt

Warning appear as follows:

[WARNING] warning: File listed twice: /app/product/tracking-tool/config/xmlconfig.xml
[WARNING] warning: File listed twice: /app/product/tracking-tool/config/properties/logging.properties
[WARNING] warning: File listed twice: /app/product/tracking-tool/config/properties/test.txt
[WARNING] warning: File listed twice: /app/product/tracking-tool/config/other/other.txt
7
user983022

私の知る限り、%configディレクティブは、ファイルを構成ファイルとしてマークするために使用されるだけなので、その後に追加のディレクティブを許可しません。次のようなことを試してください(%configディレクティブがディレクトリに対して機能するかどうかはまだ100%わかりません。ドキュメントには、機能するかどうかは記載されていません)。

%files
%config /app/product/tracking-tool/config/xmlconfig.xml
%config /app/product/tracking-tool/config/properties/logging.properties
%config /app/product/tracking-tool/config/other/other.txt
%dir %attr(0755,testuser,test) /app/product/tracking-tool/config/ 
%dir %attr(0755,testuser,test) /app/product/tracking-tool/config/properties
%dir %attr(0755,testuser,test) /app/product/tracking-tool/config/other
%attr(0644,testuser,test) /app/product/tracking-tool/config/xmlconfig.xml
%attr(0644,testuser,test) /app/product/tracking-tool/config/properties/logging.properties
%attr(0600,testuser,test) /app/product/tracking-tool/config/properties/test.txt
%attr(0600,testuser,test) /app/product/tracking-tool/config/other/other.txt
1
Forrest