2

Requires标签不满足的还有一些事情。所以我写了一个脚本来验证这些东西,但我应该把它们放在哪里?如果没有找到,那么我想退出安装,提示用户在尝试再次安装此 rpm 之前执行这些步骤。

写入标签无法使用 rpmbuild 构建 rpm exit 1%install%install has a bad exit code.

编辑:让我给你举个例子。我最初想测试的是是否存在 Oracle Java 6。如果没有,则提供 Java6 的路径。如果用户未能提供...退出 RPM。不允许使用更高级别的 Java,没有 java 就不能成功安装。如果用户不想安装 java rpm 包,则不能将其放在 Requires 中。

希望我明白我的意思。

4

1 回答 1

8

您可以将 %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
于 2013-01-23T07:35:33.970 回答