web-dev-qa-db-ja.com

RPMスペックファイルで%defattrはどういう意味ですか?

RPMの作成中、RPMスペックファイルには%defattrディレクティブがあります。そのRPMによってインストールされるファイルのデフォルト属性を定義していることは知っています。 %defattrを次のように書いた場合、どういう意味ですか?

%defattr(-testuser, testuser)
20
Mariselvam

指定したモードは無効です。 %defattrは4つの引数を取ります

http://ftp.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html#S3-RPM-INSIDE-FLIST-DEFATTR-DIRECTIVE から

%defattrディレクティブ

%defattrディレクティブを使用すると、ファイルとディレクティブのデフォルト属性を設定できます。 %defattrの形式は%attrディレクティブと似ています。

  1. デフォルトのアクセス権、またはファイルの「モード」。

  2. デフォルトのユーザーID。

  3. デフォルトのグループID。

  4. デフォルトの権限、またはディレクトリの「モード」。

%attrディレクティブの形式は次のとおりです。

%defattr(ファイルモード、ユーザー、グループ、ディレクトリモード)

%attrと同様に、特定の属性を指定する必要がない場合(通常、ファイルが適切に設定された属性でインストールされているため)、その属性はダッシュで置き換えることができます。また、ディレクトリモードは省略できます。 %defattrは、%filesの先頭で使用される傾向があります。

26
brightlancer

スペックファイルに権限と所有権を設定するには、ディレクトリをファイルのように扱います...%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
7
Chad Prey