In case someone is still searching for this question: the Nix manual explains that you can use the symlink at your own risk (possible failure building from source) https://nixos.org/nix/manual/#sec-common-env
It is enough to set the following environment variable
export NIX_IGNORE_SYMLINK_STORE=1
edit:
tl,dr;
setting this environment variable will let you use a symlink to /nix;
this may be convenient if
- you don't want to mount something on your root directory
- you still want to use precompiled pakages
be warned: this is not portable
details:
from the documentation
Normally, the Nix store directory (typically /nix/store) is not allowed to contain any symlink components. This is to prevent “impure” builds. Builders sometimes “canonicalise” paths by resolving all symlink components. Thus, builds on different machines (with /nix/store resolving to different locations) could yield different results. This is generally not a problem, except when builds are deployed to machines where /nix/store resolves differently. If you are sure that you’re not going to do that, you can set NIX_IGNORE_SYMLINK_STORE to 1.
So it is mostly a decision related to how some makefile work. If you don't plan to port your configuration elsewhere, it just works.