[pacman-dev] Alternatives system brainstorm

Allan McRae allan at archlinux.org
Mon Nov 4 22:12:32 UTC 2019

On 5/11/19 7:40 am, Daan van Rossum wrote:
> * on Monday, 2019-11-04 12:39 -0500, Eli Schwartz <eschwartz at archlinux.org> wrote:
>> My expectation is it installs what it does today, the "lua" package
>> which provides /usr/bin/lua5.3 and now, instead of installing
>> /usr/bin/lua, installs an alternative that is fulfilled by default for
>> /usr/bin/lua5.3
> Then you end up with package lua52 that provides lua, and a package lua providing lua53.  Ugly!
>> <snip>
>> I think it's fine to have pacman -S python install python3, and have
>> there be a very high likelihood that /usr/bin/python points to python3.
>> This doesn't mean we need to stop people from switching it if they
>> really want to. python 3.x will be installed first in most cases,
>> because much more common software depends on python3 these days than on
>> python2, including many core desktop environment components.
> Pacman already doesn't stop a user from having python point to whatever the user wants.  Arch users know that but does pacman also need to support OSes where users don't know that?

Yes - pacman is used many places that is not Arch.  e.g. Msys2.

> That brings up another idea: why does pacman not provide alternatives via managing symlinks in /usr/local (or even /usr/alternatives)?  That would be entirely independent of the current package structure.  If a user doesn't set alternatives then /usr/local remains empty.  This would also support the ability to select alternatives per-file etc. as was pointed out by Andrew.
> I guess a simple version of this could as well be a separate tool instead of part of pacman, except that no comprehensive alternatives info would be available to the user.  But do users really need that?  I think a user that wants to set an alternative knows what he/she wants to do.
> The simplest version of this is to let the user manage these links manually :)

Sure, you can let a user symlink /usr/local/bin/python ->
/usr/bin/python2 and put /usr/local/bin first in the path.  But not "man
python" does not provide information on what the user sees as the
"python" command, and python-config does not point at the python2
version, and ...

Simple does not mean half-arsed.


More information about the pacman-dev mailing list