From: ludo@gnu.org (Ludovic Courtès)
To: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: installing python 2 and python 3 in the same profile
Date: Tue, 13 Mar 2018 22:52:51 +0100 [thread overview]
Message-ID: <87muzbzlqk.fsf@gnu.org> (raw)
In-Reply-To: <87y3j4l3xj.fsf@mdc-berlin.de> (Ricardo Wurmus's message of "Wed, 7 Mar 2018 08:50:48 +0100")
Hello!
Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:
> with the introduction of the collision avoidance feature that prevents
> you from installing different variants of the same package into a
> profile we made it impossible to install “python” and “python@2” into
> the same profile.
>
> It still works with ad-hoc environments,
That’s because we explicitly disable the check in ‘guix environment’
(commit afd06f605bf88a796acefc7ed598b43879346a6b).
> but manifests containing both Python versions cannot be instantiated
> any more. This is too strict, because we know that these two variants
> don’t cause conflicts.
More or less: ‘PYTHONPATH’ is version-independent, which I suppose could
be problematic.
> What can we do to make this feature a little smarter?
>
> How about a package property that defines a “conflicts?” predicate that
> takes two packages of the same name and determines (e.g. by checking the
> major version) if these two packages are conflicting? If no such
> predicate is provided we assume that packages with the same name cause a
> conflict and prevent installation.
Unfortunately it wouldn’t work in the general case where some profile
entries may be coming from ~/.guix-profile/manifest, as is the case when
you do:
guix package -i python@2
guix package -i python@3
I would suggest short-term solutions, which are not exclusive:
1. Add a ‘--allow-collisions’ flag to ‘guix profile’ (we discussed it
before but didn’t get around to doing it apparently!).
2. Use different package names when we know things can be
parallel-installed: “python2” vs. “python” (I’m talking about the
package name, not its version string.) That’s what distros usually
do, and I think it’s good enough.
A longer-term solution would be to add a property like you suggest,
except that it should be serializable (a regexp, an sexp, or something),
such that we can keep it in ~/.guix-profile/manifest and honor it later.
That adds complexity for something we could easily address through
conventions.
Thoughts?
Ludo’.
next prev parent reply other threads:[~2018-03-13 21:53 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-07 7:50 installing python 2 and python 3 in the same profile Ricardo Wurmus
2018-03-10 8:34 ` Pjotr Prins
2018-03-11 9:11 ` Konrad Hinsen
2018-03-11 11:10 ` Ricardo Wurmus
2018-03-11 12:42 ` Pjotr Prins
2018-03-11 13:30 ` Hartmut Goebel
2018-03-11 13:36 ` Pjotr Prins
2018-03-12 7:07 ` Konrad Hinsen
2018-03-12 8:37 ` Ricardo Wurmus
2018-03-11 13:00 ` Hartmut Goebel
2018-03-11 13:27 ` Pjotr Prins
2018-03-13 21:52 ` Ludovic Courtès [this message]
2018-03-14 8:40 ` Ricardo Wurmus
2018-03-14 11:39 ` Hartmut Goebel
2018-03-14 14:30 ` Konrad Hinsen
2018-03-15 9:11 ` Ludovic Courtès
2018-03-15 9:37 ` Konrad Hinsen
2018-03-16 20:59 ` Ricardo Wurmus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87muzbzlqk.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=guix-devel@gnu.org \
--cc=ricardo.wurmus@mdc-berlin.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.