Yum-如果pretrans scriptlet失败,如何停止依赖项安装

时间:2018-07-10 16:40:07

标签: rpm yum

我在require部分有具有多个依赖项的RPM规范,但是如果系统中正在运行某种服务,我想使rpm和依赖项安装失败。

我曾尝试在RPM规范中使用pretrans,即使scriptlet失败,依存关系仍在安装中。

Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Pre Check if service is running
Service is Already Available on this box .Aborting the installation. 
error: %pretrans(perlTestBase-5.6.7.SNAPSHOT-1.2.201807101630.x86_64) scriptlet failed, exit status 1
Error in PRETRANS scriptlet in rpm package perlTestBase-5.6.7.SNAPSHOT-1.2.201807101630.x86_64
  Installing : php-pear-HTML-Template-IT-1.3.0-2.el5.noarch                                                                                                                                                                                                               1/2 
  Verifying  : php-pear-HTML-Template-IT-1.3.0-2.el5.noarch                                                                                                                                                                                                               1/2 
  Verifying  : 
  perlTestBase-5.6.7.SNAPSHOT-1.2.201807101630.x86_64                                                                                                                                                                                                    2/2 

Dependency Installed:
  php-pear-HTML-Template-IT.noarch 0:1.3.0-2.el5                                                                                                                                                                                                                              

Failed:
  perlTestBase.x86_64 0:5.6.7.SNAPSHOT-1.2.201807101630

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

在执行安装事务(在其中运行scriptlet)之前,针对数据库中注册的软件包静态解析RPM依赖性。当前没有任何方法可以根据动态状态(例如,守护程序当前是否正在运行)使事务失败。

也没有办法不使用失败的scriptlet安装软件包的依赖项。