Centos

從我的規範文件執行 RPM 安裝時,為什麼 yum install 會停止?

  • July 13, 2022

我通常從Minimal Centos 7開始並執行

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

這非常有效。

但是,我現在正在編寫一個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 在規範文件中不起作用,但在普通的舊終端中起作用?

您的 RPM 數據庫很有可能在此時試圖吞噬自己。數據庫已經打開,但是你試圖在它關閉之前再次打開它。您故意為 RPM 創建競爭條件,但它不知道如何處理它。正確的方法是在規範文件中指定一個包共存條件Requires:

引用自:https://unix.stackexchange.com/questions/709769