4

サブパッケージのセットを構築するカスタマイズされたRPMがあります。各サブパッケージのスペックファイルには、いくつかのシンボリックリンクを別のフォルダーにコピーするために使用される%postスクリプトがあります。

%post server
echo "Copying symlinks..." >> /tmp/mystuff.log
pwd >> /tmp/mystuff.log
cp -av /etc/mystuff/symlinks/server/current /etc/mystuff/ >> /tmp/splashtheme.log 2>&1

実行中のシステムにサブパッケージRPMの1つをインストールすると、正常に動作します。Anacondaを介して(キックスタートパッケージリストの一部として)インストールすると、RPMのインストール後のスクリプトが実行されないようです。

編集:結局のところ 、実際に実行されますが、次のようなエラーが発生します。

/var/tmp/rpm-tmp.48901: line 3: cp: command not found

どうやら、Anacondaはcoreutilsを依存関係として指定しているにもかかわらず、coreutilsをインストールする前にRPMをインストールしようとしていますRequires:

だから、私の改訂された質問はタイトルです: coreutilsのにパッケージを強制的にインストールするにはどうすればよいですか?

4

2 に答える 2

3

@ジャスティン、あなたは幸運なことに、アナコンダが同じトランザクションでそれらを異なる順序でインストールできるので、それが機能します。必要なものは次のとおりです。

Requires: coreutils
Requires(post): coreutils

そうすれば、anaconda / rpmは、%postが実行される前にコアutilsがインストールされていることを確認します。

于 2011-07-17T00:12:47.853 に答える
2

スペックファイルにエラーがありました。%packageセクションではなく、プリアンブルでRequires:行を指定しました。これはそれを修正しました:

%package server
Summary: Server component
Group: Extras
Requires: coreutils
于 2011-06-03T22:23:34.710 に答える