2012-06-20 163 views
0

安裝我有一個包X取決於軟件Y. y常常編譯並通過用戶手動安裝,但不總是要求。YUM/RPM - 如何指定不使用RPM

如果我把一個要求我的規範文件,如「要求:Y」包Ÿ將YUM下載並安裝。如果Y是由用戶安裝的,那麼它會被覆蓋,這是不正確的。

如果我不把一個要求,那些沒有誰Ÿ最終會缺少必要的軟件來運行X.

有辦法知道,如果通過檢查是否存在安裝ÿ一個二進制文件在某個地方或通過檢查一個環境變量。

如何處理這種情況?

+1

安裝到由包管理工具管理的文件系統樹中而不使用包管理器是問題所在。如果用戶這樣做,他們沒有理由期望軟件包管理器不覆蓋他們錯誤安裝的軟件。 –

回答

1

您的RPM .spec文件的%pre部分可以設置檢查二進制文件是否存在。

%pre 
    # Check if binary file exists . If not, exit with an error. 
    if [ -f /path/to/binary/file ]; then 
     echo "Info: Pre-requisite exists: /path/to/binary/file" 
    else 
     echo "Error: Pre-requisite <name> not installed. Exiting..." 
     exit 1 
    fi 
相關問題