在创建RPM时,RPM规范文件具有指令%defattr
。我知道它定义了该RPM安装的文件的默认属性。如果我写下%defattr
如下,那是什么意思?
%defattr(-testuser, testuser)
答案 0 :(得分:26)
您指定的模式无效。 %defattr需要四个参数
%defattr指令
%defattr指令允许设置文件和指令的默认属性。 %defattr的格式与%attr指令类似:
文件的默认权限或“模式”。
默认用户ID。
默认组ID。
- 醇>
目录的默认权限或“模式”。
%attr指令具有以下格式:
%defattr(文件模式,用户,组,目录模式)
与%attr一样,如果特定属性不需要 指定(通常是因为文件安装了它 属性设置正确),然后该属性可以替换为 短跑。另外,可以省略目录模式。 %defattr倾向于 在%文件的顶部使用。
答案 1 :(得分:7)
要在spec文件中设置权限和所有权,请将目录视为文件... %defattr将设置所有没有%attr的文件(在这种情况下为rww owner apache group apache并将目录设置为755)。
%files
#%attr(<mode>, <user>, <group>) file
%defattr(644,apache,apache,755)
%attr(-,apache,apache) /var/www/coolapp
%attr(-,apache,apache) /var/www/coolapp/js
%attr(-,apache,apache) /var/www/coolapp/static
/var/www/coolapp/index.html
/var/www/coolapp/__init__.py
/var/www/coolapp/settings.py
/var/www/coolapp/urls.py
/var/www/coolapp/wsgi.py