Nix-ld is only used by unpatched executables that use the link loader at
/lib
or/lib64
. If you use for example python from nixpkgs than it will not pick upNIX_LD_LIBRARY_PATH
andNIX_LD
since these types of binaries are configured to use a glibc from the nix store.
Ah, I guess that's why I've seen folks recommend just having uv
install the python interpreter as well, so everything python uses the same link loder from nix-ld.
I'll preface that NixOS may not be for everyone, as deviating from a conventional hierarchical file system is a radical departure from conventional distributions; but for those that want precise control over their system environment, it has a good deal of appeal.
For example, I appreciate being able to use the latest bleeding release of a number of tools while sticking with older trusted versions of other utilities, but if both relied upon different versions of similar dependencies, such package conflicts can be troublesome to resolve, as few Linux package managers gracefully deal with multi version installs.
For NixOS using the nix store, installing leaf packages that traditionally conflict is trivial, and as a user, I can spend less time managing every transitive dependency in order to use the software I want. Not having to wait for a disjointed ecosystem of packages to synchronize around dependencies, or resorting to compromise in package version selection is very liberating.
The functional language and documentation for nix itself is a bit quirky, as I wish it was stronger typed, but being able to declaratively express and version control my setup across workstations has been a time saver; installing/configuring something once and then have-done with it.