2011-06-03 168 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 
相關問題