[CentOS] yum --allow-downgrade and versionlocking not working

Thu Jun 11 10:31:16 UTC 2009
Kai Schaetzl <maillists at conactive.com>

Filipe Brandenburger wrote on Wed, 10 Jun 2009 23:31:46 -0400:

> Another way to do it is to add:
> 
> exclude=rrdtool perl-rrdtool
> 
> to the [rpmforge] repository configuration in /etc/yum.repos.d/rpmforge.repo.

yeah, I can do that and did it now. And I did it last time with perl-DBI.
However, the versionlock plugin should be the "right way" to do this. If it 
worked. Either I'm doing somethign wrong or there are bugs. That's what I want 
to find out. Some for the --allowdowngrade. If it doesn't work it has to be 
fixed. If nobody can give me working examples I'm going to bug both issues once 
I have time.

> 
> I don't really know the versionlock plug-in so I don't know if it was
> supposed to do something different than what that does...

It seems that exclude excludes the packages also for dependancy resolution, so 
that they appear to not being installed.
And I'm hitting now more problems in this direction.
After excluding rrdtool I get
Error: Package tuple ('perl-DBD-mysql', 'i386', '0', '4.011', '1.el5.rf') could 
not be found in packagesack

that is a package that obsoleted the base perl-DBD-MySQL (note the different 
capitatization) without warning sometime last year. I went back to the base 
version and added the obsoletes checking to priorities.conf. All was well for 
some time. But now it starts to complain out of the blue.
After I add it to the exclusion list
exclude=spamassassin*,perl-IO*,perl-File-Temp,rrdtool,perl-rrdtool,perl-DBD-
mysql
I get the next error:
Error: Package tuple ('perl-Date-Manip', 'noarch', '0', '5.54', '2.el5.rf') 
could not be found in packagesack

That package wasn't ever installed I think.
rpm -q --whatrequires perl-Date-Manip
no package requires perl-Date-Manip

Ah, the tuple problem is introduced by versionlock. I had removed the comment 
for follow_obsoletes = 1 so I don't get another surprise as with 
priorities.conf.
#  Uncomment this to lock out "upgrade via. obsoletes" etc. (slower)

Once I comment out follow_obsoletes from versionlock.conf I get:
 perl-Date-Manip       noarch       5.54-2.el5.rf          rpmforge       210 k
     replacing  perl-DateManip.noarch 5.44-1.2.1

So, that is doing the exact opposite of check_obsoletes in priorities.conf and 
overrides it. It doesn't do what the comment says. Nice.

Ok, versionlock is working now.
Removed the exlude and added
rrdtool-1.2.30-1.el5.rf

perl-rrdtool-1.2.30-1.el5.rf
to versionlock.list
follow-obsoletes in versionlock conf commented again.
Hope, this helps others.


Kai

-- 
Kai Schätzl, Berlin, Germany
Get your web at Conactive Internet Services: http://www.conactive.com