目前我正在使用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指令,然后在下面明确列出文件(具有不同的权限不应导致'文件列出两次'警告消息:
[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规则。