“%defattr”指令是否也影响 rpm 规范文件中的“%post”部分?

Does the "%defattr" directive affect the "%post" section also in rpm spec file?

我有一个 .spec 文件,其中的代码有点像这样:

%files
%defattr(-,xyz, xyz)
%verify(md5 size mtime mode) %attr(755, xyz, xyz) /usr/bin/app1
%verify(md5 size mtime mode) %attr(755, xyz, xyz) /usr/bin/app2

%post
mkdir -p /apps/1/logs
mkdir -p /apps/2/logs
mkdir -p /apps/3/logs
mkdir -p /apps/4/logs
mkdir -p /apps/5/logs
ln -sf /usr/bin/app1 /usr/bin/app3
touch /home/xyz/abc.log

%defattr 是否也会影响在 post 部分中创建的文件和目录的默认属性?

没有。您需要明确 chown/chmod 您在 %post 中所做的任何事情。最好 不要 将它们放在 %post 中,因为那样的话事情可能会中断(比如 rpm -V)。为什么 不会 您希望在 %build 中完成?