[英]How do I determine if rpm installation is in progress?
我正在編寫一個腳本,其中必須根據當前是否正在安裝rpm來分叉指令。
我知道如何使用dpkg-如果deb軟件包安裝已打開,則將創建/var/lib/dpkg/lock
文件並存在。
rpm是否有類似的東西,或者還有其他方法可以知道正在安裝rpm?
請參閱yum python代碼,該代碼檢測是否正在執行另一個(通常是yum)進程。
通常,有太多分層的鎖定方案(通常)對rpmdb進行序列化來提供確定的答案。 rpm的舊版本(即上世紀)使用對/ var / lib / rpm / Packages的fcntl鎖來序列化rpmdb訪問。 稍微現代一點的系統(例如10年前)使用Berekeley DB並發訪問鎖定(在每個表級別的讀取器<->單寫入器排除項上序列化)。
甚至更現代的rpm(例如5年前)都引入了事務性的每頁鎖定和ACID行為,這是另一種序列化方案。
諸如yum / yast / urpmi之類的各種分解器都引入了其他鎖定層,但不幸的是,其中大多數是不可互操作的。
簡短的答案:沒有一種鎖定方案可以序列化廣泛部署的並發RPM(通常是rpmdb)訪問。 最有效的事實鏈接是Berkeley DB提供的鏈接,因為rpmdb訪問通常是最有爭議的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.