我通常从最小 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文件中指定一个包并存。