1

展開のためにポストインストール フックを必要とするプロジェクトがあります。私の方法は、setuptools を使用してスケルトン rpm 仕様ファイルを生成し、ソース ファイルを tar することです。

問題は、この方法で権限を制御する方法がわからないことです。仕様ファイルは次のようになります。

%install
python setup.py install --single-version-externally-managed --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES

%files -f INSTALLED_FILES
%defattr(755,%{user},%{user})

これは、すべてのファイルが適切なユーザーと権限に設定されるという点で、かなりうまく機能します。ただし、ディレクトリには属性が設定されていません。これが問題なのかどうかはわかりませんが、奇妙に思えます。すべてのディレクトリは、755 パーミッションを持つ root によって所有されています。ディレクトリを所有する良い(合理的に標準的な)方法を知っている人はいuserますか?私の会社は、アプリケーション固有の役割アカウントの下でデプロイされるアプリケーションをパッケージ化することを好む傾向があるためです。setuptools を使用して結果をサイト パッケージに入れると、.pycファイルがコピーされます。しかし、構成ファイルのディレクトリをパスから外して作成したい場合は、回避するのに十分な量のようです。

4

1 に答える 1

3

%defattr(755,%{ユーザー},%{ユーザー})

その行は、すべてのファイルに対するデフォルトのパーミッション、ユーザー、およびグループの所有権を設定します。次のようなものでデフォルトをオーバーライドできます。

%attr(644, <username>, <username>) </path/to/file>

root 以外のユーザーがデフォルトを所有するようにしたい場合は、仕様の先頭で「user」マクロを定義する必要があります。

%define user myusername
于 2009-10-20T22:58:34.837 に答える