rpm -i安装相同软件的已安装版本

时间:2014-05-22 10:20:13

标签: rpm rpmbuild rpm-spec

我根据以下规范创建了一个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 将包视为全新安装并且无法识别已安装的包并处理新包装作为升级

感谢

2 个答案:

答案 0 :(得分:1)

RPM读取程序的“版本”,在“spec”文件中将版本更改为更高版本,问题应该解决。

问候。

答案 1 :(得分:0)

Rpm会像yum一样自动处理版本。

我每天都会构建相同rpms的版本,为了避免这种问题,我用yum安装了所有内容。这是用''yum localinstall''完成的,但不再需要了:

  yum install myprog.rpm

将完全满足您的需求。

此外,我建议您构建一个本地存储库并从那里拉出rpms。只需记住将''metadata_expire = 1m''添加到.repo文件中,因此yum每次运行时都会检查更新。