首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果在specfile中不满足某些条件,如何中止rpm包的安装?

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

Stack Overflow用户
提问于 2013-01-23 05:11:50
回答 1查看 3.2K关注 0票数 2

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

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

编辑:让我给您举一个例子。我最初想测试的是Oracle Java 6是否存在。如果没有,则提供到Java6的路径。如果用户不能提供一个..。退出RPM。不允许使用更高的java,如果没有Java,安装就不应该成功。如果用户不希望安装java rpm包,则不能将其放置在需要的位置。

希望我能明白我的意思。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 07:35:33

您可以为这种任务使用%预区段。

在安装包之前执行%预脚本。这是一个罕见的包,需要在安装之前做任何事情;在包含RedHatLinux4.0的350个包中,没有一个能使用它。

一些指南可以帮助您入门;脚本内容(在%pre部分中没有使用)来自jpackage,您可以在那里找到其他一些脚本的好例子:

代码语言:javascript
复制
  %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
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14472880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档