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: pgpZ4sywTxRrB.pgp
Description: PGP signature

[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora Magazine]     [Fedora News]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [SSH]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux