簡體   English   中英

如果specfile中不滿足某些條件,如何終止rpm軟件包的安裝?

[英]How to abort the installation of an rpm package if some conditions are not met in specfile?

Requires標簽還不能滿足其他要求。 所以我寫了一個腳本來驗證這些東西,但是我應該放在哪里呢? 如果未找到,那么我想退出安裝,提示用戶在嘗試再次安裝此rpm之前先執行步驟。

%install標記中寫入exit 1無法使用rpmbuild構建rpm。 %install has a bad exit code.

編輯:讓我為您提供一個示例。 我最初想要測試的是是否存在Oracle Java 6。 如果沒有,請提供指向Java6的路徑。 如果用戶無法提供...,請退出RPM。 如果沒有Java,則不允許使用高級Java,並且安裝不會成功。 如果用戶不想安裝Java rpm軟件包,則無法將其放置在“要求”中。

希望我能理解我的意思。

您可以將%pre節用於此類任務。

%pre腳本在即將安裝軟件包之前執行。 它是罕見的軟件包,在安裝之前需要完成任何操作。 構成Red Hat Linux Linux 4.0的350個軟件包中沒有一個使用它。

一些入門指南; 腳本內容(未在%pre部分中使用)來自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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM