0

I created a rpm based on the following spec

Name      : MyProg
Summary   : A program I wrote
Version   : 4.3.6.6797
Release   : 1

rpmbuild creates a file called MyProg-4.3.6.6797-1.x86_64 and I installed it on my machine using rpm -i

However after making some changes to the spec I went to bump up the release as

Name      : MyProg
Summary   : A program I wrote
Version   : 4.3.6.6797
Release   : 2

and getting a file called MyProg-4.3.6.6797-2.x86_64

I noticed that rpm -i still installed the latest version even though the was already a version of the rpm installed.

Shouldn't rpm detect that the program is already installed and ask me to use -U --upgrade ?

rpm -qa | grep MyProg shows

rpm -qa | grep MyProg
MyProg-4.3.6.6797-1.x86_64
MyProg-4.3.6.6797-2.x86_64

If I use rpm -U then the rpmdb gets updated properly, but I am confused as to why rpm -i is treating the package as a fresh install and not recognizing the already installed package and treating the new package as an upgrade

thanks

eramm
  • 191
  • 16

2 Answers2

1

RPM read "Version" of your program, go to change your version to higher one in "spec" file and the issue should be solved.

Regards.

Tsanko
  • 149
  • 1
  • 4
0

Rpm does handle versions automatically as yum does.

I build versions of the same rpms daily, and to avoid this kind of issues I install everything with yum. This was done with ''yum localinstall'' but that is not needed anymore:

  yum install myprog.rpm

Will do exactly what you need.

Furthermore, I advise you to build a local repository and pull the rpms from there. Just remember to add ''metadata_expire=1m'' to the .repo file, so yum checks for updates every time it runs.

Bruno9779
  • 1,551
  • 2
  • 14
  • 31