![从我的规范文件执行 RPM 安装时,为什么 yum install 会停止?](https://linux22.com/image/208212/%E4%BB%8E%E6%88%91%E7%9A%84%E8%A7%84%E8%8C%83%E6%96%87%E4%BB%B6%E6%89%A7%E8%A1%8C%20RPM%20%E5%AE%89%E8%A3%85%E6%97%B6%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%20yum%20install%20%E4%BC%9A%E5%81%9C%E6%AD%A2%EF%BC%9F.png)
我通常从最小 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文件中指定一个包并存。