从我的规范文件执行 RPM 安装时,为什么 yum install 会停止?

从我的规范文件执行 RPM 安装时,为什么 yum install 会停止?

我通常从最小 Centos 7并运行

rpm -i postgres10-libs-10.15-1PGDG.rhel7.x86_64.rpm 

这非常有效。

不过,我现在正在写一个转速 规格文件并尝试让它在安装后执行相同的操作,例如:

%post
rpm -i postgres10-libs-10.15-1PGDG.rhel7.x86_64.rpm 

然而,当我这样做时

yum install my-rpm-1.0.0.el7.x86_64.rpm

它停在 rpm -i 线上。我知道这一点的原因是因为当我这样做时

ps -ef

我可以看到

 rpm -i postgres10-libs-10.15-1PGDG.rhel7.x86_64.rpm 

永远不会完成。

有谁知道为什么 rpm -i 在规范文件中不起作用,但在普通的旧终端中却起作用?

答案1

那时您的 RPM 数据库很可能正在尝试自我吞噬。数据库已经打开,但是您尝试在它关闭之前再次打开它。您故意为 RPM 创建竞争条件,但它不知道如何处理它。正确的方法是Requires:在spec文件中指定一个包并存。

相关内容