如何中止的rpm包的安装,如果某些条件没有满足spec文件?(How to abort the in

2019-08-07 22:31发布

有一些更多的事情是, Requires标签不符合。 所以我写了一个脚本来验证这些事情,但我在哪里放置它们? 如果没有找到的话,我想退出安装提示用户再次尝试安装此RPM之前做的步骤。

exit 1%install标签构建失败,使用的rpmbuild转速。 说%install has a bad exit code.

编辑:让我为你提供一个例子。 如果甲骨文Java 6的存在就是我最初想试验是。 如果没有,那么提供路径的Java6。 如果用户没有提供一个...退出RPM。 Java的更高不允许安装不能没有Java的成功。 在需要一个点,如果用户不希望安装Java rpm包不能把它。

希望我通过了我的观点。

Answer 1:

您可以使用%的预节这样的任务。

在%的预脚本执行之前的包进行安装。 这是罕见的包装,需要什么可以在安装前进行; 没有350包组成的Red Hat Linux的Linux 4.0使用它的。

一些指南,帮助您开始; 脚本内容(以%的预部分未使用)来自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


文章来源: How to abort the installation of an rpm package if some conditions are not met in specfile?