How does yum compare versions?
We have a web app we package into an RPM. We have a problem with the version field of the RPM.
Let's say we have installed our rpm: foo-2.1.0.007
007 is our build number.
Now when we try to install a newer rpm, foo-2.1.0.010, yum says "There's nothing to update".
When I've remade the RPMs, but removed the leading zeroes, the problem was solved:
foo-2.1.0.7
foo-2.1.0.10
According to th开发者_StackOverflowis link each segment of the version is compared as an integer, but practice shows otherwise.
So my question is: What is the version comparison algorithm for RPM and why leading zeroes interfere?
Yum just asks rpm to compare them. You can install rpmdevtools, and you then use:
% rpmdev-vercmp foo-2.1.0.010 foo-2.1.0.007
0:foo-2.1.0.010 is newer
...which is what you'd expect. Unless you have an epoch in the 007 package, I'm not sure why you are getting a different answer. What version of rpm do you have? What does vercmp say for you?
精彩评论