Centos rpm名称在安装后更改
我已使用以下名称创建rpm:Centos rpm名称在安装后更改,centos,fedora,rpm,rpmbuild,rpm-spec,Centos,Fedora,Rpm,Rpmbuild,Rpm Spec,我已使用以下名称创建rpm: [root@buildbtl ship-rpms]# ls cdd-pcts-5.1.1.el6.x86_64.rpm 我用命令安装了rpm rpm -ivh cdd-pcts-5.1.1.el6.x86_64.rpm 查询已安装的软件包后,名称将更改为 cdd-pcts-5.1.1-.el6.x86_64 [root@buildbtl ship-rpms]# rpm -qa | grep cdd-p cdd-pcts-5.1.1-.el6.x86_64 我不
[root@buildbtl ship-rpms]# ls
cdd-pcts-5.1.1.el6.x86_64.rpm
我用命令安装了rpm
rpm -ivh cdd-pcts-5.1.1.el6.x86_64.rpm
查询已安装的软件包后,名称将更改为
cdd-pcts-5.1.1-.el6.x86_64
[root@buildbtl ship-rpms]# rpm -qa | grep cdd-p
cdd-pcts-5.1.1-.el6.x86_64
我不明白为什么在5.1.1版之后添加了额外的-
如何维护已创建rpm和已安装rpm的名称相同。
在spec文件中,我已经覆盖了用于命名rpm的宏\u build\u name\u fmt
使用以下命令:
%define _build_name_fmt %{NAME}-%{_VERSION}%{Release}.%{ARCH}.rpm
提前感谢您的指导无论您如何重命名rpm软件包文件(在您的情况下,通过更改
\u build\u name\u fmt
的定义),它的实际软件包名称(rpm数据库实际上关心的)始终与其他rpm元数据一起存储在软件包中。这意味着,确保rpm包的名称在rpm数据库和rpm构建文件名中相同的最简单方法是不更改\u build\u name\u fmt
rpm数据库始终存储标识包的四个“元数据”字段:名称、版本、版本和arch(体系结构)。它通过读取RPM文件的内容来获取此信息;它的文件名是不相关的。您可以使用rpm-qi
package命令查看rpm的其他元数据字段(有关更多信息,请参阅)
在您的示例中,似乎
- 名称为“cdd pcts”
- 版本为
“5.1.1”
- 发布是
,并且”.el6'
- 拱门是“x86_64”
%{release}
是由两个符号构成的,在修改spec文件时,您将其中一个符号置为空
在安装之前,您还可以检查软件包以检查元数据设置是否正确,例如
rpm -qip cdd-pcts-5.1.1.el6.x86_64.rpm
感谢您的回复,我正在使用release宏作为release:{?dist}。是的,我同意我没有像应该添加release:%%{rel}%{?dist}一样将release编号附加到它。这里的一个问题是,我是否可以覆盖_build_name_fmt以获得rpm名称(cdd-pcts-5.1.1-1.el6.x86_64.rpm)与使用rpm-qa命令在rpm包中列出的已安装rpm名称相同