2016-05-30 137 views
2

我有一點要求,我需要同時執行兩個觸發器(在同一個包上),但不幸的是,RPM spec文件只執行一個觸發器(以先到者爲準)一次。RPM spec文件不在相同的包中執行兩個觸發器

任何人都可以告訴我如何執行以下兩個觸發器。

%triggerpostun - ODC#SHRTVER_NODOT#
%triggerpostun - odc1010 < = 10.10.01.00

這裏,SHRTVER_NODOT - > 1010

第一一個將適用於所有版本執行(它必須,例如:900,910,1000,1010 ...)
第二個只有當發現特定版本時才能執行(僅限於10.10.01.00)

我試着切換這兩個觸發器insi de規格文件,它工作正常(代碼明智!),但一次只有一個觸發器(以先到者爲準)。

任何人都可以告訴我如何使spec文件執行這兩個觸發器。

感謝您的幫助!

編輯::

謝謝你,但是這篇文章是指不同類型的觸發器和規範文件中執行的方式。我在我的spec文件中還有其他幾個觸發器,但不幸的是他們都沒有做出這種類型的行爲。

%triggerin - ODC < 10.10.01.00
%triggerpostun - ODC

這樣也我有兩個觸發器,但每當需要的版本包中找到這些完美執行。

+0

提示...可能是... http://rpm.org/api/4.4.2.2/triggers.html .. –

+0

似乎有一個與此相關的錯誤。我試圖找到解決方法來提取正在卸載的軟件包的版本;但是因爲這是一個「postun」觸發器;我們無法再提取該版本號。有一種方法可以使用「postun」和「un」觸發器的組合並將該版本存儲到臨時文件中,從而產生非常骯髒的解決方法... –

+0

是的,對於解決方法,我已將兩個腳本組合在同一觸發器中,但不幸的是,新腳本(它應該只執行一個版本)與其他腳本一起執行每個版本。我沒有得到如何解決這個..?所以,我創建了兩個觸發器,但這裏只有一個觸發器正在執行。 –

回答

0

一些舊版本的RPM對每種類型的每個包只執行一次觸發。 rpm-4.4.2.2(在RHEL5/CentOS5中)可能屬於這個類別

相關問題