Description of Problem:
In my recent experience of updating an older Red Hat installation in
the middle of upgrading packages anaconda spat "fatal errors" with,
in the given situation, obviously bogus claims that likely there is
not enough of a disk space or maybe media errors.
A closer examination revealed that a symbolic link was found where
a new package expected a directory. This happened _twice_.
The first time while installing new 'filesystem' and the second
time 'kdebase'. While the first instance is somewhat comprehensible
(/var/tmp from a rather small /var partition was made into a link to
/usr/tmp on a sizeable /usr partition instead of vice-versa) in the
second one it is _highly unlikely_ that any changes in the original
'kdebase' were ever made.
An underlying "trip wire" is easily and trivially fixable "by hand"
(and most likely 'anaconda' could do that "automagically" as well) but
there is no way to induce, after mods, a "retry and continue". Most
non-hackers almost surely will immediately hit "OK" which reboots
to a system at this moment quite likely unbootable as there will be
a mismatch between assorted programs and libraries. Moreover before
making 'anaconda' happy another attempt to install from scratch will
fail in the same manner for exactly the same reason.
To add an insult to injury after switching links and restarting from
scratch all packages which were already "installed" are copied from a
distribution media once again eating time and making wonders to all
.rpmsave files. Sigh! In the past I was scratching my head why some
people claim "updating never works for me and I prefer to erase and
reinstall". While I definitely do not share that opinion I think that
I found one of possible reasons why.
This problem is reported for 7.3 distribution as this is where it hit
me but I would be somewhat surprised if this would be that version
Unfortunately, rpm does not support going from directory to symlink on an
upgrade (there are several bugs on the subject) so there's nothing that anaconda
can really do unless we're to check every file both on your system and that's
about to be upgraded which is extremely unfeasible, especially when people
already complain about the time required in upgrade prep.
There are some checks in place for some of the more common symlink/directory
problems, though in current anaconda.