6

ソフトウェアをインストールするRPMをFedora15で作成しようとしていますが、インストール後にソフトウェアが正しく機能するためには、システム上の他の(構成)ファイルの編集、ユーザー/グループの追加なども必要です。これらのタスクの一部の実行は、rootユーザーによってのみ許可されます。私はrootユーザーとしてRPMを作成しないことを知っており、それがなぜそんなに悪い考えであるかを理解しています。ただし、シェルスクリプトステートメントをスペックファイル(%post、%prep ...任意のセクション)に追加して必要なファイルを編集したり、ユーザー/グループを追加したりすると、rpmbuildコマンドが失敗し、「Permissiondenied」というメッセージが表示されます(驚くべきことに)。

これを処理するための最良の方法は何ですか?最初にパッケージをインストールしてから、rootとしてシェルスクリプトを実行してすべてを構成するようにユーザーに指示する必要がありますか?それはあまりエレガントではないようです。ユーザーが「yuminstallmysoftware」などの1つの簡単なコマンドですべてを実行できるようにしたいと考えていました。

私の研究の多くは、おそらくこれはRPMを介して行われるべきではないことを示唆しています。Maximum RPMの多くの部分、および他の多くの優れたリソースを読みましたが、探しているものが見つかりませんでした。RPMの作成は初めてですが、ソフトウェアの単純なスペックファイルを正常に作成できています...パッケージを解凍して正しい場所にインストールした後は、すべてを正しく構成できません。どんな入力でも大歓迎です!

4

2 に答える 2

8

useradd should be run in %pre and shouldn't run during rpmbuild. That's the standard way of doing it. I would recommend the packaging guidelines and specifically the section on users and groups.

于 2012-06-26T01:56:11.543 に答える
5

%preRPMファイルのセクションで.spec、ソフトウェアのインストールに必要なすべての条件を確認する必要があります。RPMファイル
のセクションは、ソフトウェアの実行に必要なすべての変更を行う必要があります。RPMファイル のセクションでのファイル許可エラーを回避するために、セクションでファイル許可と所有権を設定できます。これにより、RPM をインストールするユーザーに、構成ファイルを変更するための適切な権限が与えられます。%post.spec
%post.spec%files

%install
# Copy files to directories on your installation server

%files
# Set file permissions and ownership on your installation server
%attr(775, myuser, mygroup) /path/to/my/file


%pre
# Check if custom user 'myuser' exists. If not, create it.
# Check if custom group 'mygroup' exists. If not, create it.
# All other checks here

%post
# Perform post-installation steps here, like editing other (configuration) files.
echo "Installation complete."
于 2012-06-26T20:54:05.033 に答える