On 03/26/2012 08:05 AM, Ricardo Rocha wrote:
(resending after subscribing to the list)
The lcgdm packages are using alternatives, as several flavors are
provided - mysql, postgresql, ... backends.
While trying to provide an upgrade path to some of our users taking
legacy packages - as in from other repositories, not fedora - by using
obsoletes/provides i've bumped into an issue with the upgrade of the
init scripts. The old packages are not using alternatives, so the
init.d script is an actual file, not a symlink. While upgrading to the
new fedora package (which would obsolete/provide the old ones), the
old init.d script is left there, as it's a real file. This breaks the
service as the daemon binaries are now (as they should) in /usr/sbin -
they used to go in /usr/bin.
Debian seems to provide an option for these cases:
# man update-alternatives
If some real file is installed where an alternative link has to be
installed, it is kept unless --force is used.
but i can't find anything similar in Fedora. Is there a solution other
than documenting that people should remove the old package and install
the new one in two steps?
Why not just test if the target is a symlink or not prior to the
update-alternatives call (and remove or rename it as you see fit, so it
no longer would interfere)?