如何在coreutils之后强制Anaconda安装我的软件包?

时间:2011-06-03 16:49:48

标签: rpm rpmbuild rpm-spec

我有一个定制的RPM,可以构建一组子包。每个子包在spec文件中都有一个%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时,它可以正常工作。当我通过Anaconda安装它(作为Kickstart软件包列表的一部分)时,RPM的安装后脚本似乎没有运行。

修改 事实证明,他们实际上运行,但我收到的错误是:

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

显然,Anaconda正在尝试在安装coreutils之前安装我的RPM,即使我在Requires:中指定coreutils作为依赖项。

所以,我修改过的问题是标题:如何在 coreutils之后强制我的软件包安装

2 个答案:

答案 0 :(得分:3)

@Justin,你很幸运,因为anaconda可以在同一个交易中以不同的顺序安装它们。你需要的是:

Requires: coreutils
Requires(post): coreutils

这样anaconda / rpm将确保在运行%post之前安装核心工具。

答案 1 :(得分:2)

我的specfile中有错误。我在前导码中指定了Requires:行,而不是在%package部分中。这修好了它:

%package server
Summary: Server component
Group: Extras
Requires: coreutils