java-如果specfile中不满足某些条件,如何中止rpm软件包的安装?

Requires标签还不能满足其他要求.
所以我写了一个脚本来验证这些东西,但是我应该放在哪里呢?
如果未找到,那么我想退出安装,提示用户在尝试再次安装此rpm之前先执行步骤.

在%install标记中写入出口1无法使用rpmbuild构建rpm.
说%install的退出代码错误.

编辑:让我为您提供一个示例.我最初想要测试的是是否存在Oracle Java 6.如果没有,请提供指向Java6的路径.如果用户无法提供…,请退出RPM.如果没有Java,则不允许使用高级Java,并且安装不会成功.如果用户不想安装Java rpm软件包,则无法将其放置在“要求”中.

希望我能理解我的意思.

解决方法:

您可以将%pre节用于此类任务.

The %pre script executes just before the package is to be installed.
It is the rare package that requires anything to be done prior to
installation; none of the 350 packages that comprise Red Hat Linux
Linux 4.0 make use of it.

一些入门指南;脚本内容(未在%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
上一篇:CentOS下RabbitMQ的安装配置


下一篇:RPM包管理器