RPMの作成中、RPMスペックファイルには%defattr
ディレクティブがあります。そのRPMによってインストールされるファイルのデフォルト属性を定義していることは知っています。 %defattr
を次のように書いた場合、どういう意味ですか?
%defattr(-testuser, testuser)
指定したモードは無効です。 %defattrは4つの引数を取ります
%defattrディレクティブ
%defattrディレクティブを使用すると、ファイルとディレクティブのデフォルト属性を設定できます。 %defattrの形式は%attrディレクティブと似ています。
デフォルトのアクセス権、またはファイルの「モード」。
デフォルトのユーザーID。
デフォルトのグループID。
デフォルトの権限、またはディレクトリの「モード」。
%attrディレクティブの形式は次のとおりです。
%defattr(ファイルモード、ユーザー、グループ、ディレクトリモード)
%attrと同様に、特定の属性を指定する必要がない場合(通常、ファイルが適切に設定された属性でインストールされているため)、その属性はダッシュで置き換えることができます。また、ディレクトリモードは省略できます。 %defattrは、%filesの先頭で使用される傾向があります。
スペックファイルに権限と所有権を設定するには、ディレクトリをファイルのように扱います...%defattrは、%attrなしですべてのファイルを設定します(この場合、rww owner Apacheグループ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