cannot install kdebase

Jim Cornette fc-cornette at insight.rr.com
Fri Dec 15 00:26:41 UTC 2006


Jan Brosius wrote:
> Jim Cornette wrote:
>> Jan Brosius wrote:
>>> Hello,
>>>
>>> I cannot install kdebase. This the error message I get in the 
>>> terminal window when I try to do "yum install kdebase"
>>>
>>> *Is this ok [y/N]: y
>>> Downloading Packages:
>>> Running Transaction Test
>>> Finished Transaction Test
>>>
>>> Transaction Check Error:   file /usr/share/man/man1/xsltproc.1.gz 
>>> from install of libxslt-1.1.18-1.FC6 conflicts with file from package 
>>> libxslt-1.1.17-1.1*
>>>
>>> *[root at localhost ~]# *
>>>
>>>
>>> I use Fedora Core 6 x86_64 and my default desktop is gnome.
>>>
>>
>> It is possible that you had an unclean rpm transaction that left 
>> multiple versions on your system. What does 'rpm -q libxslt output? 
>> Are there two instances?
> I get this
> *[Jan at localhost ~]$ rpm -q libxslt
> libxslt-1.1.17-1.1
> libxslt-1.1.18-1.FC6
> [Jan at localhost ~]$ *
> 
> Thanks for your help
> Jan
>>
>> Jim
>>
> 

You could check if you have many more instances of multiple revision 
packages with this script. It checks for arch dependent duplicates as 
well as excludes known legitimate multiple versioned packages like the 
kernel and public keys. You need to make the script executable after 
download with chmod 744 sg-dupes-mv.sh
The name of the script stands for Steve Grubb, a lister that landed a 
job and currently works with Red Hat. Search for duplicates and take 
multiversioning into consideration for 64-bit archetectures. I added the 
no duplicates found as user feedback but the script is as Steve posted 
in other details.
http://fedoraproject.org/wiki/JimCornette?action=AttachFile&do=get&target=sg-dupes-mv.sh

What you need to do is to download the archetecture and latest version 
from one of the mirrors for your duplicate packages. After you download 
the latest version of updated packages you need to run rpm -Uvh 
--replacepkgs --replacefiles <packageneame>.rpm to ensure the old 
package remnants are replaced with the new package requirements and that 
everything is intact. Afterwards, the issue with dependacies on older 
packages will be eliminated. yum is just reporting requirements needed 
for your current packages installed database.

If you run rpm -e <olderpackage> you might also remove files that have 
the same name and location for the older and the newer package. If you 
did this, run rpm -qV <packagename> on the rpm to see if anything is 
reported as missing. If you do have missing files, the above method 
using --replacepkgs --replacefiles on the downloade rpms (as root of 
course) will add the missing files back to your system.

There is another method that I used before for removing just the 
database entry with rpm -e --justdb <packagename> and allowing the new 
package to simply exist if it is outputted as correct (with a blank 
output). The only defect is that documentation will be left behind for 
the older rpm. The new rpm stores its documentation as a versioned 
number. I commented on an SELinux package that left behind some files 
for the older rpms if failed and did not realize that this would be 
normal behavior.

Anyway, you are on your way to getting yum to download the packages 
after you remove the bogus database entries. I hope it is not much work 
for you.
The problem is increased if you kill yum or rpm in mid transaction. If 
this error is with the rpm itself related to how it is packaged, you 
should see limited damage.

Jim



-- 
"If people are good only because they fear punishment, and hope for 
reward, then we are a sorry lot indeed."
-- Albert Einstein




More information about the fedora-list mailing list