From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: installing python 2 and python 3 in the same profile Date: Wed, 14 Mar 2018 09:40:27 +0100 Message-ID: <87bmfrrqx0.fsf@elephly.net> References: <87y3j4l3xj.fsf@mdc-berlin.de> <87muzbzlqk.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:44638) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ew1y9-0003Jp-2e for guix-devel@gnu.org; Wed, 14 Mar 2018 04:41:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ew1y3-0002iF-1T for guix-devel@gnu.org; Wed, 14 Mar 2018 04:41:08 -0400 In-reply-to: <87muzbzlqk.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: Guix-devel , Ricardo Wurmus Ludovic Court=C3=A8s writes: >> How about a package property that defines a =E2=80=9Cconflicts?=E2=80=9D= 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=E2=80=99t work in the general case where some pro= file > 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 =E2=80=98--allow-collisions=E2=80=99 flag to =E2=80=98guix pro= file=E2=80=99 (we discussed it > before but didn=E2=80=99t get around to doing it apparently!). > > 2. Use different package names when we know things can be > parallel-installed: =E2=80=9Cpython2=E2=80=9D vs. =E2=80=9Cpython=E2= =80=9D (I=E2=80=99m talking about the > package name, not its version string.) That=E2=80=99s what distros = usually > do, and I think it=E2=80=99s good enough. Both of these are desirable solutions, I think. =E2=80=9C--allow-collision= s=E2=80=9D would be an escape hatch, and renaming packages is much easier than the =E2=80=9Cserialisable predicate=E2=80=9D idea. --=20 Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net