如何重命名rpm打包文件?

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

1个回答

2

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

Obsoletes: oldname

并且可选地甚至:

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

你可以阅读 http://rpm.org/user_doc/dependencies.html 以获取更多参考信息。

1
PS:ObsoletesProvides部分应放在头文件的顶部,而不是%pre部分。 请返回翻译后的文本。 - Chris Maes
我不能使用“提供程序”因为不确定他们是否已经安装了旧名称。有时他们直接安装新名称,那么这种情况就行不通了。 - Sandy
1
那不是provides的工作方式,但不用担心。只需要使用Obsoletes就可以了。你能在问题中展示你的规范文件吗? - Chris Maes
它在顶部区域。但是我在%pre部分遇到了一个错误,它显示$1为1(安装)。当我执行rpm -Uvh newname-8.x86_64.rpm时,它会检查newname是否存在,如果不存在,则尝试执行安装而不是升级。 - Sandy
让我们在聊天室里继续这个讨论 - Chris Maes
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接