2013-01-23 60 views
2

還有一些Requires標記不能滿足的事情。 所以我寫了一個腳本來驗證這些東西,但我在哪裏放置它們? 如果沒有找到,那麼我想退出安裝提示用戶在嘗試再次安裝此rpm之前執行這些步驟。如何在spec文件中不符合某些條件時終止安裝rpm包?

%install標籤寫入exit 1構建失敗,使用的rpmbuild轉速。 說%install has a bad exit code.

編輯:讓我給你提供一個例子。我最初想測試的是如果存在Oracle Java 6。如果不是,則提供Java6的路徑。如果用戶未能提供一個...退出RPM。更高的Java是不允許的,沒有java就不能安裝。如果用戶不想安裝java rpm軟件包,則不能將其放置在需要的位置。

希望我明白了我的觀點。

+0

你需要給更多的細節有人來回答這個問題。 –

+0

嗯,這裏有什麼不明確的地方,請您評論一下,以便我可以編輯 –

+1

您想測試的狀況;一些可能在%pre和%post中執行,大多數不能並且指出問題在別處 –

回答

6

您可以使用%的預節這樣的任務。

%pre腳本在即將安裝軟件包之前執行。 安裝前需要做任何事情的稀有軟件包; Linux 4.0中沒有一個包含Red Hat Linux的350個軟件包使用它。

一些指南,幫助您開始;腳本內容(以%的預部分未使用)來自JPackage上-utils的,你會發現腳本,有一些其他的好例子:

%pre 
    # try to find jvm from java command 

    # try javac first, or we might get the location of the jre instead - djw 
    java=`which javac 2>/dev/null || :` 

    # if we don't have the jdk, then maybe we have the jre - djw 
    if [ -z "$java" ] ; then 
    java=`which java 2>/dev/null || :` 
    fi 

    if [ -n "$java" ] ; then 
    while [ -h "$java" ] ; do 
     java=`readlink $java 2>/dev/null` 
    done 
    return 
    fi 

    echo "Can't find java virtual machine, aborting." 
    exit 1 
+0

非常感謝:) –

相關問題