2016-05-30 131 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中)可能属于这个类别

相关问题