rpm - 我们如何重命名 rpm 构建?

标签 rpm rpmbuild

我想将我的 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 部分设置旧名称?

最佳答案

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

Obsoletes: oldname

甚至可以选择:

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

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

关于rpm - 我们如何重命名 rpm 构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51361306/

相关文章:

permissions - 使用 rpmbuild 构建时如何更改 umask?

linux - 如何为 rpm 依赖项添加自定义路径

centos - 规范文件中的 pkgconfig(alsa) 无法识别已安装的 alsa、alsa-devel

git - 在 rpm 中将最后一个 git commit id 放在哪里

c++ - 持续集成服务能否在本地构建 Linux 包?

rpmbuild %{dist} 未在 CentOS 5.5 上定义?

linux - 安装了一个 RPM 文件。在哪里可以找到已安装的程序?

linux - 查询 debian 存储库的工具/命令(如 rpm 存储库的 repoquery)

linux - 防止 rpmbuild 读取 ~/.rpmmacros

rpmbuild:如何跳过 "debuginfo"包的生成(不更改 SPEC 文件;既不是 .rpmmacros)