Re: Removing duplicate apps after FC6 upgrade from FC5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Attachment: pgpsDZgXTc14l.pgp
Description: PGP signature


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux