考虑一个SPEC文件,其中包含:
%install install -mu=rwx,g=rx,o= -D bin/blah.jar ${RPM_BUILD_ROOT}%{_libexecdir}/foo/blah.jar
然后在%files
部分,权限不会改变(比如%defattr(-,bubba,users,-)
)。
安装RPM会导致blah.jar
具有权限644
而不是640
。 事实上,不pipe在install
命令中使用了什么权限,它们都被重置为默认值640
。 我发现原因是jar重新打包,因为如果我通过在SPEC文件中添加%define __jar_repack %{nil}
来禁用重新打包,则会保留权限。
这是再包装商的一个讨厌的错误。
我怎么得到重新打包工作, 并保留权限(我的意思是保留,不是设置它们,而是在%files
部分,因为那么我不得不提到单个文件不仅在%install
而是%files
作为那么,而不是在后者的整个目录)?