When you get too many such conflicts, you are probably looking for
virtual environments.
These are provided by nix-shell, and allow to temporarilly override the
set of available, installed applications.
Looking at your example, a clash between two different git's at the same
version is very weird...
-- Layus.
On 17/06/17 05:14, Roger Qiu wrote:
I wonder in other programming languages, name clashes are usually
resolved through aliasing. Would it be possible for nix to install
packages while aliasing their outputs to a different name to avoid
clashes like this?
On 17 Jun 2017 09:07, "Roni Choudhury" <[email protected]
<mailto:[email protected]>> wrote:
From time to time I see an error message like this:
|collision between
‘/nix/store/qs8fq5ld2shc0i3fvbs6n0g0k8fypndm-git-2.13.0/bin/git’
and
‘/nix/store/64fjdb4whkf2r5x8xyqf9kkljnk6w59b-git-2.13.0/bin/git’;
use ‘nix-env --set-flag priority NUMBER PKGNAME’ to change the
priority of one of the conflicting packages |
I understand what causes it (two packages competing to place the
same, e.g., binaries in my profile), but I’ve never understood how
to resolve it. Usually I just guess priority numbers until it
works; more lately I’ve simply removed the offending package from
my environment before repeating the failing install command.
Obviously, neither approach is healthy or correct :)
The man page for |nix-env| contains the following:
If there are multiple derivations matching a name in args that
have the same name (e.g., gcc-3.3.6 and gcc-4.1.1), then the
derivation with the highest priority is used. A derivation can
define a priority by declaring the meta.priority attribute.
This attribute should be a number, with a higher value
denoting a lower priority. The default priority is 0.
But I’m still not sure what this means for my error situation. How
do I know what the priorities are for the different packages? The
default value is 0, which is the highest priority; what does that
mean exactly, for the default priority to be the highest priority?
Is there a more intuitive way to resolve this sort of conflict?
For instance, is there a way to tell |nix-env| to force the issue
by treating the requested package as higher priority than any
existing ones?
Thanks!
roni
_______________________________________________
nix-dev mailing list
[email protected] <mailto:[email protected]>
https://mailman.science.uu.nl/mailman/listinfo/nix-dev
<https://mailman.science.uu.nl/mailman/listinfo/nix-dev>
_______________________________________________
nix-dev mailing list
[email protected]
https://mailman.science.uu.nl/mailman/listinfo/nix-dev
_______________________________________________
nix-dev mailing list
[email protected]
https://mailman.science.uu.nl/mailman/listinfo/nix-dev