Re: yum and crash recovery

"Michel Salim" <[email protected]>
Newsgroups gmane.linux.rpm.yum
Message-ID <[email protected]>
2007/3/2, seth vidal <[email protected]>:
> On Fri, 2007-03-02 at 12:35 -0500, Michel Salim wrote:
> > 2007/3/2, Fajar A. Nugraha <[email protected]>:
> > > Michel Salim wrote:
> > > > I have an unreliable system that is prone to overheating (at which
> > > > point the kill switch would mercifully save the CPU from a flaming
> > > > death, but at the expense of whatever is going on at the moment) --
> > > > and doing a large yum transaction is quite reliable at causing a
> > > > lock-up (I'm making sure I set the CPU speed to minimum before
> > > > updating now).
> > > >
> > > I may be saying the obvious here, but you should find out how to cool
> > > down that server, or throw it away. Unless it's NOT a server :-P
> >
> > That's the scary thing. It's a laptop (Turion 64)! And it's a good
> > suggestion -- I'm waiting for the next iteration of the Macbook.
> > Hopefully Linux has full support for it by then (apart from EFI)
> >
> > > > Anyway, the question is, if you're partway into the transaction, and
> > > > some packages have been installed (but the old ones not removed yet),
> > > > is there a way to tell yum to clean up the mess? There must be some
> > > > transaction logs somewhere that can be used to automate the process.
> > > >
> > > IMHO the best way is to recover rpmdb from backup, and restart the yum
> > > process.
> > > SUSE has /etc/cron.daily/suse.de-backup-rpmdb. I don't think Redhat has
> > > it by default.
> > >
> > Hmm .. the thing is, some RPMs have already been installed (e.g. if
> > foo-x.y is updated to foo-y.z, the system has both installed). If I
> > roll back the rpmdb, it will actually be inconsistent with what's on
> > the disk, right?
> >
> > What I want is a way for yum to say "oh, I detect an incomplete
> > transaction -- let me just continue it and make sure the old RPMs get
> > properly removed"
> >
>
> so there's no way for yum to know based on what information is in the
> rpmdb what has happened on the system. The mechanism we've been using
> thus far is to:
>
> 1. look for dupes in the rpmdb
> 2. remove the older version
> you can try running:
> http://linux.duke.edu/~skvidal/useful-scripts/dupes-cli.py
> to accomplish those two.
>
> 3. run rpm -Va and see what's broken
> 4. re-run the update command to see if it can fix the broken.
>
>
>
> it's worth a shot. not ideal.
>
Thanks! The script works fine for removing older packages -- the
problem is with RPM being hard-wired to ignore /usr/share and so files
owned by >1 packages there get removed.

If yum has an option to reinstall packages that are broken (as if they
were older) then the script would be a one-stop solution.

Thanks,


-- 
Michel Salim
http://hircus.wordpress.com/

My theology, briefly, is that the universe was dictated but not signed.
                -- Christopher Morley
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.