2011-06-03 115 views
4

我有一个自定义的RPM,可以构建一组子包。每个分装在所使用的一些符号链接复制到另一个文件夹中的规范文件中的%post脚本:如何强制Anaconda在coreutils之后安装我的软件包?

%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 

显然,蟒蛇正试图安装它之前安装RPM我coreutils,尽管我在Requires:中指定了coreutils作为依赖项。

所以,我修改的问题是标题:如何强制我的包被安装 coreutils?

回答

3

@Justin,你是幸运的,它作为如果在同一事务蟒蛇仍然可以安装它们以不同的顺序。你需要的是:

Requires: coreutils 
Requires(post): coreutils 

这样蟒蛇/ RPM将确保核心utils的是之前您%后正在运行安装。

2

我的规格文件中有错误。我在前导码中指定了要求:行,而不是在%包部分。这个固定:

%package server 
Summary: Server component 
Group: Extras 
Requires: coreutils 
相关问题