如何确定rpm安装是否正在进行中?

时间:2014-05-07 13:36:44

标签: linux rpm

我正在编写一个脚本,其中指令必须根据当前是否正在进行rpm安装进行分叉。

我知道如何使用dpkg - 如果启用deb软件包安装,则/var/lib/dpkg/lock文件已创建并存在。

是否有类似rpm的内容,或者还有其他方法可以知道现在正在进行rpm安装吗?

1 个答案:

答案 0 :(得分:0)

请参阅yum python代码,该代码检测是否另一个(通常为yum) 过程正在执行中。

分层锁定方案太多(通常)序列化 你的rpmdb给你一个明确的答案。旧(即上个世纪) rpm版本使用/ var / lib / rpm / Packages上的fcntl锁来序列化 rpmdb访问。稍微更现代(如10年前)已经使用过 Berekeley DB并发访问锁定(序列化 在每个表级读者上< - >单一作家排除)。

更现代的rpm(比如5年前)引入了事务性 每页锁和ACID行为,这是另一个序列化 方案

像yum / yast / urpmi这样的各种depsolvers已经引入了其他层 锁定,遗憾的是大多数都是不可互操作的。

简短回答:没有一个锁定方案可以序列化 广泛部署的并发RPM(通常为rpmdb)访问。 最有效的事实上是由Berkeley DB提供的 rpmdb访问通常是最有争议的。