Okay, given the lack of replies I decided to brave it and risk another hosed system. It was pretty epic. For reference, here's what I did to get back to a full up-to-date F15, in case anyone else finds themselves here.
'Complete' the interrupted YUM transaction:
Code:
sudo yum-complete-transaction
Get a list of currently installed packages:
Code:
sudo rpm -qa --qf '%{name} ' > ~/packages.old.txt
Remove the duplicate packages and update whatever is left:
Code:
sudo package-cleanup --cleandupes
sudo yum update
Get a new list of installed packages:
Code:
sudo rpm -qa --qf '%{name} ' > ~/packages.new.txt
Now I resorted to my old friend vim, but sed and sort would work too. I just like immediate interactive previews when dealing with regexes...
Open ~/packages.*.txt in vim. For each file break it into lines, sort and remove dupes. For the first line, "^M" is entered by pressing Ctrl+V, then Return.
Code:
:%s/ /^M/g
:sort u
:wq
Now compare the lists:
Code:
diff -u packages.{old,new}.txt > packages.diff
Open packages.diff in vim. Remove all lines except those starting with "-" (i.e. lost packages):
Code:
:%s/^ .*//
:%s/^+.*//
:%s/^---.*//
:%s/^%.*//
Remove the "-" prefixes and empty lines:
Code:
:%s/^-//
:sort u
:wq
Install the missing packages:
Code:
sudo yum install $(< ~/packages.diff)
Verify the installed RPMs:
Now I just need to know the best way to force a prelink run without confusing stuff...
Gareth