我根据以下规范创建了一个rpm
Name : MyProg
Summary : A program I wrote
Version : 4.3.6.6797
Release : 1
rpmbuild创建一个名为MyProg-4.3.6.6797- 1 .x86_64的文件,并使用rpm -i将其安装在我的机器上
然而,在对规范进行一些更改之后,我开始将该版本提升为
Name : MyProg
Summary : A program I wrote
Version : 4.3.6.6797
Release : 2
并获取名为MyProg-4.3.6.6797- 2 .x86_64
的文件我注意到rpm -i仍然安装了最新版本,即使已经安装了rpm版本。
rpm不应该检测到程序已经安装并要求我使用-U --upgrade吗?
rpm -qa | grep MyProg显示
rpm -qa | grep MyProg
MyProg-4.3.6.6797-1.x86_64
MyProg-4.3.6.6797-2.x86_64
如果我使用rpm -U,那么rpmdb会正确更新,但我很困惑为什么 rpm -i 将包视为全新安装并且无法识别已安装的包并处理新包装作为升级
感谢
答案 0 :(得分:1)
RPM读取程序的“版本”,在“spec”文件中将版本更改为更高版本,问题应该解决。
问候。
答案 1 :(得分:0)
Rpm会像yum一样自动处理版本。
我每天都会构建相同rpms的版本,为了避免这种问题,我用yum安装了所有内容。这是用''yum localinstall''完成的,但不再需要了:
yum install myprog.rpm
将完全满足您的需求。
此外,我建议您构建一个本地存储库并从那里拉出rpms。只需记住将''metadata_expire = 1m''添加到.repo文件中,因此yum每次运行时都会检查更新。