System specificity
The fact that all Nix derivations have a system
property that describes which architecture the package is built on
We recommend starting with the Nix quick start and consulting concept docs primarily for clarification. Feel free to click x to the right to disable this notification on all concept docs.
In Nix, the term system specificity expresses the fact that all Nix derivations have a system
attribute that specifies which system the derivation is built on.
In order to realize a Nix derivation into a package, each derivation in the package’s closure needs to be supported on the target system.
So if you want to build the package foo
on an x86_64-linux
system, any dependency of the foo
derivation needs to be supported on x86_64-linux
.
System specificity is essential to Nix being a truly multi-platform system. Because all derivations—and thus all packages—are system specific, things like Nix development environments and NixOS configurations are also system specific.