Hello,
I've been looking through the archives for quite some time and haven't
been able to answer my question, so I thought I'd ask the list. Here's a
little bit of background about my setup and about what I'm trying to
accomplish:
For various and unpleasant reasons, I'm mirroring the up2date service
for RHEL4 to yum (2.6.1). Functionally speaking, it's set up identically
to the Fedora yum repositories; I've got a "base" repository with the
packages from the original distribution, and whenever I run up2date on
the yum server, it downloads the new RPMs into the "updates" repository
and rebuilds the "updates" repo metadata.
My problem is that I'd like to be able to upgrade to any version of a
particular package from a lesser version of that package, and not
necessarily the newest version of the package. Here's an example of what
I'm talking about:
RHAS4(u4) ships with version qt-3.3.3-9.3.x86_64. Since the OS release,
qt has been updated to qt-3.3.3-10.RHEL4.x86_64 and then again to
qt-3.3.3-11.RHEL4.x86_64. As it is now, I've got both of the new qt RPMs
in the updates directory, and the yum metadata files are built accordingly.
If I'm on a box with qt-3.3.3-9.3.x86_64 installed, and I want to go to
qt-3.3.3-11.RHEL4.x86_64, I can do the following:
yum install qt-3.3.3-11.RHEL4.x86_64
yum update qt.x86_64
etc., etc.
What I can't figure out how to do is to upgrade to
qt-3.3.3-10.RHEL4.x86_64 once qt-3.3.3-11.RHEL4.x86_64 is added to the
repository. If I do "yum install qt-3.3.3-10.RHEL4.x86_64" or something
similar, I get the "Could not find update match for
qt-3.3.3-10.RHEL4.x86_64" error from cli.py.
After some digging around, I see that yum is being returned only the
newest version of the qt utility from a call to
rpmUtils.updates.reduceListNewestByNameArch.
Because of that, this behavior seems very deeply rooted in the yum
update function, and it looks to me like there's not a particularly easy
way to do what I want. If I specifically exclude
"qt-3.3.3-11.RHEL4.x86_64" on the yum command line,
reduceListNewestByNameArch() returns the one I want, but this is very
cumbersome. I don't really want to have to specifically exclude every
package version that's newer than the one to which I want to upgrade.
Obviously, if I remove qt and then run a "yum install
qt-3.3.3-10.RHEL4.x86_64", it works fine, but that's not a very robust
way to upgrade RPMs.
Is this a problem that other people have dealt with? I looked to see if
there's something in yum 3.x that would help me out (I'm not really
anxious to upgrade from 2.6), but I don't see anything. Am I stuck with
specifically excluding every other version of the package that happens
to be in the "updates" repo? Is there something simple I'm missing?
Thanks very much!
David Ressman
_______________________________________________
Yum mailing list
Yum@xxxxxxxxxxxxxxxxxxxx
https://lists.dulug.duke.edu/mailman/listinfo/yum