gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 11:33:32 25 4
gpt4 key购买 nike

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

%install 标记中写入 exit 1 无法使用 rpmbuild 构建 rpm。说 %install 有一个错误的退出代码。

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

希望我明白我的意思。

最佳答案

您可以使用 %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

关于java - 如果 specfile 中的某些条件不满足,如何中止 rpm 包的安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14472880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com