我正在开发一个嵌入式系统,并创建了一些 RPM。一些 RPM 中存在以下问题。
当我在版本 1 上安装/升级 RPM 版本 2 或在版本 2 上安装 RPM 版本 1 时,安装给出的退出代码为 0。
但是,当我在现有安装的基础上安装完全相同版本的 RPM 时,它会返回退出代码 1。但是,大多数其他 RPM 都没有这种行为(在现有安装的基础上安装 RPM 时退出代码为 1)
这是设计使然吗?有一个自定义脚本可以根据退出代码检测未成功的安装,因此我需要此 RPM 安装返回 0。我正在使用以下命令。
rpm -Uv --force <rpm-file>
我尝试生成更详细的日志,但返回 0 的情况和返回 1 的情况之间完全没有区别。
答案1
要强制返回代码 0,您可以使用以下技巧:rpm -Uv --force <rpm-file> || true
虽然您确实应该让您的脚本查询已安装的版本(rpm -q <package>
),并且只有当您对安装的情况不满意时才尝试安装。