現在、RPM Maven プラグインを使用して、必要に応じて RPM を生成しています。私の状況では、そのディレクトリに含まれるファイルに異なるディレクトリ権限を適用する必要があります。
残念ながら、すべてのディレクトリですべてのアクセス許可が同じであるとは限らないため、デフォルトのディレクトリ アクセス許可を使用することはできません。
そのため、次のスペック ファイル スニペットになるようにプラグインを構成します。
%files
%config %dir %attr(0755,team_prod,prodgroup) /basedir/product/tool/config
%config %dir %attr(0755,team_prod,prodgroup) /basedir/product/tool/config/examples
%config %attr(0644,team_prod,prodgroup) /basedir/product/tool/config/examples/test.conf
%config %attr(0644,team_prod,prodgroup) /basedir/product/tool/config/examples/dest.conf
サイトhttp://www.rpm.org/max-rpm-snapshot/s1-rpm-specref-files-list-directives.htmlから%dir マクロを使用しているため、%dir ディレクティブがパッケージの作成時にディレクトリに存在するファイルに関係なく、ディレクトリ自体のみをパッケージ化するように RPM に指示するために使用されます。したがって、デフォルトでは、そのディレクトリの下にあるすべてを一覧表示することはありません。これは、%dir ディレクティブを使用して、以下にファイルを明示的にリストすることを意味します (異なるアクセス権を使用しても、「ファイルが 2 回リストされています」という警告メッセージが表示されることはありません。
[WARNING] warning: File listed twice: /basedir/product/tool/config/examples/dest.conf
[WARNING] warning: File listed twice: /basedir/product/tool/config/examples/test.conf
私の質問は、maven RPM プラグインの使用に関係なく、上記の仕様スニペットは警告メッセージを排除するのに十分ではないのでしょうか?
また、仕様ファイルにはファイルを検索したりリストしたりするロジックがないため、これらのメッセージを無視しても安全ですか?
RPM は正常にインストールおよびアンインストールされ、他のすべての RPM コマンドは完全に機能しますが、これらの警告メッセージは引き続き表示されますか?
現在、私はそれらを無視しています。
ディレクトリとファイルのパーミッションが同じ場合、警告メッセージは表示されないことに注意してください (私はそう思います)。
ご回答ありがとうございます。
Maven 固有の設定:
<mappings>
<mapping>
<configuration>true</configuration>
<directory>/basedir/product/tool/config</directory>
<filemode>0755</filemode>
<username>team_prod</username>
<groupname>prodgroup</groupname>
</mapping>
<mapping>
<configuration>true</configuration>
<directory>/basedir/product/tool/config/examples</directory>
<filemode>0755</filemode>
<username>team_prod</username>
<groupname>prodgroup</groupname>
</mapping>
<mapping>
<configuration>true</configuration>
<directory>/basedir/product/tool/config/examples</directory>
<directoryIncluded>false</directoryIncluded>
<filemode>0644</filemode>
<username>team_prod</username>
<groupname>prodgroup</groupname>
<sources>
<source>
<location>src/main/config/examples</location>
</source>
</sources>
</mapping>
上記に類似したエントリが多数あります。私は次のように定義していますが、それ以外には何もありません。このプラグインにも再帰的な Maven 小道具があることは知っていますが、適用される権限をきめ細かく制御する必要があります。たとえば、bin ディレクトリの場合、すべてのファイルに 755 などがあります。前述のように、%dir ディレクティブが生成されますが、RPM ルールに準拠していないようです。