【问题标题】:How do we rename a rpm build?我们如何重命名 rpm 版本?
【发布时间】:2023-03-20 04:01:01
【问题描述】:

我想将我的 rpm 文件的名称从 oldname-7.x86_64.rpm 更改为 newname-8.x86_64.rpm。 我用新名称创建了新的 rpm,但是当我尝试执行时

rpm -Uvh newname-8.x86_64.rpm

它会抛出以下错误:

file XXXXX from install of oldname-7.x86_64 conflicts with file from package newname-8.x86_64.

rpm 升级删除软件包并安装新软件包。但在我的情况下,包名称不同,因此它不会删除包。 我应该在 %pre 部分中使用 rpm -e oldname 删除旧名称项目吗?有没有办法在 %pre 部分设置旧名称?

【问题讨论】:

    标签: rpm rpmbuild


    【解决方案1】:

    您应该在 newname.spec 的规范文件中使用Obsoletes 和/或Provides 标签:

    Obsoletes: oldname
    

    甚至可以选择:

    Provides: oldname = %{version}-%{release}
    

    您可以阅读http://rpm.org/user_doc/dependencies.html 以供进一步参考。

    【讨论】:

    • 它不适用于过时的产品。出现错误:%pre(newname-7.0-0.x86_64) scriptlet 失败,退出状态 1 错误:安装:%pre scriptlet failed (2),跳过 newname-7.0-0。
    • 请阅读错误:它说你%pre部分有错误;所以请更正您的规范文件的%pre 部分中的内容。
    • PS:ObsoletesProvides 部分应该放在头文件的顶部,而不是在 %pre 部分中
    • 我不能使用 Provides,因为不确定他们是否已经安装了 oldname。有时他们直接安装 newname 然后这种情况就行不通了
    • 这不是提供的工作方式,但没关系。只需Obsoletes 就可以了。你能在你的问题中显示你的规范文件吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    相关资源
    最近更新 更多