相关疑难解决方法(0)

在规范步骤中以编程方式失败RPM安装

我正在制作RPM.此特定RPM的要求不能表示为RPM先决条件,我们可以将它们称为特定的文件系统/磁盘配置.目前,在安装后,在运行时,当不满足要求时,会发生故障.

我可以在我的脚本的%install部分中检查所需的先决条件.但是,如果满足某些条件,我无法弄清楚如何使安装失败.是否可以通过%install(或其他一些)部分中的某些触发器在运行时失败rpm安装?

在.spec文件中,示例看起来像这样:

%install
if [ -f /some/file ]
then
    FAIL_RPM_INSTALL ## What is this command?
fi
Run Code Online (Sandbox Code Playgroud)

fedora rpm

11
推荐指数
1
解决办法
8040
查看次数

出现错误时如何退出rpm安装

如果某些条件为假,我正在寻找一种退出 rpm 安装的方法。我在 %pre 部分添加了一个小脚本,如果我的条件失败,它会退出安装。

我面临的问题是我看到 %pre scriptlet 已执行,并且 rpm 安装失败。然而,在它的最后,我得到了这 2 行我不想要的 - 已安装......然后是完成!

Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
missing file zyWhg1. exiting install..
error: %pre(tyr-3.2.1.x86_64) scriptlet failed, exit status 255
error:   install: %pre scriptlet failed (2), skipping tyr-3.2.1

Installed: tyr-3.2.1.x86_64 0:3.2.1
Complete!
Run Code Online (Sandbox Code Playgroud)

rpm rpmbuild rpm-spec

5
推荐指数
1
解决办法
5079
查看次数

如果specfile中没有满足某些条件,如何中止rpm包的安装?

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

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

编辑:让我举个例子.我最初想要测试的是Oracle Java 6是否存在.如果没有,那么提供Java6的路径.如果用户未能提供一个...退出RPM.不允许使用更高的Java,如果没有java,安装不应该成功.如果用户不想安装java rpm软件包,则无法将其置于"需要点"中.

希望我明白我的观点.

java linux rpm rpmbuild rpm-spec

2
推荐指数
1
解决办法
1841
查看次数

标签 统计

rpm ×3

rpm-spec ×2

rpmbuild ×2

fedora ×1

java ×1

linux ×1