6. Alternative versions of an interface - update-alternatives (from old Packaging Manual)
When several packages all provide different versions of the same program or file it is useful to have the system select a default, but to allow the system administrator to change it and have their decisions respected.
For example, there are several versions of the vi editor, and there
is no reason to prevent all of them from being installed at once, each
under their own name (nvi, vim or whatever). Nevertheless it is
desirable to have the name vi refer to something, at least by
default.
If all the packages involved cooperate, this can be done with
update-alternatives.
Each package provides its own version under its own name, and calls
update-alternatives in its postinst to register its version (and
again in its prerm to deregister it).
See the update-alternatives(8) man page for details.
If update-alternatives does not seem appropriate you may wish to
consider using diversions instead.
Do not use alternatives for systemd configuration files. See
Binary packages for more information.