On Saturday 17 February 2007, Sam Varshavchik wrote: > Karl Hakmiller writes: > > I just upgraded from FC5 to FC6 and have found a dozen or more > > apps left in FC6 from the FC5 installation as well as duplicate > > FC6 applications -- at least that is what Synaptic reports. I > > was expecting the first sort of redundancy but not the second. > > Any suggestions about the best way to go about locating and then > > deleting the superfluous files of either sort? > > Curious -- can you look in your /root/upgrade.log. I suspect that > you'll find that the %post script from most of your packages has > barfed during the update. Long standing bug, at least since FC 3. > Bug 178590. > > > BTW, wouldn't it be nice if there was a delete button in > > Synaptic? > > Would it be nice if all the bugs in rpm were fixed? Although this > is ultimately an anaconda issue -- I suspect that anaconda enables > selinux during an upgrade, which nukes all the %post scripts if the > FC install never had selinux policies installed -- I feel that rpm > compounds this bug. When rpm upgrades package X from version to A > to version B, and version B's %post script pukes, rpm leaves both > version A and version B installed. > > Dumb, dumb, dumb… > > As far as fixing this -- you'll need to compile a list of dupe > packages, as a first step. Something like: > > rpm -q -a --queryformat '%{NAME}\n' | sort | uniq -c | awk '$1 > 1 > { print $2} ' > > >From that, you'll need to manually edit out some things. Like all > > the > > gpg-pubkey pseudopackage hack -- there'll be more than one of them. > If you're running x86-64, multilib packages that you get with the > default FC 6 x86_64 install are going to screw you here, so before > cleaning up _this_ mess, you should blow away all the i386 packages > first (but see below). You really do not need useless multilib > packages make your life difficult. > > Now, for each dupe package you got from the first rpm command, > you'll need to grab the old version of each package. Something > like: > > cat $pkglist | while read F > do > rpm -q --queryformat '%{INSTALLTIME} > %{NAME}-%{VERSION}-%{RELEASE}' $F | sort -n | sed -n 1p | awk ' > {print $2}' done > > That should give you a package-version-release list that you'll > want to feed back to rpm -e. Don't take my word for it. Verify > this yourself. > > And _then_, after all this silliness, you may or may not notice > that bug 223639 will end up biting you in the arse (which you > might've noticed already, if you had to remove i386 packages on > your x86_64 box). > > rpm really needs to go. I more or less suspected there would be a lot of handwork involved here but thanks for the helpful guides. I've already compiled the list and am working my way thru it. I had decided to do an upgrade rather than a naked install to preserve a set of painstakingly created filters in my mail client. I'm now re-thinking that decision and may just drop this picky work and re-format/reinstall before I get so much stuff on this machine that I won't have the nerve. Thanks for your help. I appreciate it. Karl L