dav*_*vka 14 installation rpm rhel software-packaging rpmbuild
我需要为包中的一个主要目录指定公共属性,并为其中一些子目录指定特殊权限.例如
%files
%attr(-, myuser, mygroup) /opt/myapp
%attr(750, myuser, mygroup) /opt/myapp/bin # no exec permission to other
/etc # this is the reason I can't use %defattr(-, myuser, mygroup)
Run Code Online (Sandbox Code Playgroud)
我自然地在/ opt/myapp/bin下的每个文件上收到"文件列出两次"警告.我的问题是,它究竟意味着什么?rpmbuild用它做什么?我无法在任何地方找到答案.我可以忽略它吗?什么优先,第一次或最后一次?
我不想myapp
明确列出所有内容来解决这个问题.还有其他方法吗?谢谢
Bru*_*779 11
我在这里张贴以防万一有人有同样的问题并找到这个老问题.
最近(最近如何取决于发行版)宏%排除已被添加到rpmbuild.
%files
%attr(-, myuser, mygroup) /opt/myapp
%exclude /opt/myapp/bin
%attr(750, myuser, mygroup) /opt/myapp/bin # no exec permission to other
Run Code Online (Sandbox Code Playgroud)
这里的优点并不像要排除一组文件或文件夹那样明显:
%files
%attr(-, myuser, mygroup) /opt/myapp
%exclude /opt/myapp/[bin|data|whatever]
%attr(750, myuser, mygroup) /opt/myapp/bin # no exec permission to other
%attr(777, myuser, myothergroup) /opt/myapp/data
%attr(640, myuser, myothergroup) /opt/myapp/whatever
Run Code Online (Sandbox Code Playgroud)
奇怪的是,[a | b]语法适用于%exclude,但不适用于%files中的其他指令(例如,我可以使用正则表达式排除但不包括,doh)
小智 8
把它改成这个:
%files
%dir %attr(-, myuser, mygroup) /opt/myapp
%attr(750, myuser, mygroup) /opt/myapp/bin
Run Code Online (Sandbox Code Playgroud)
注意%dir
目录.那应该摆脱两次列出的文件警告.
归档时间: |
|
查看次数: |
12685 次 |
最近记录: |