Nix (package manager): Difference between revisions
imported>Mic92 how to use sandbox builds |
imported>Mic92 No edit summary |
||
Line 7: | Line 7: | ||
When sandbox builds are enabled, | When sandbox builds are enabled, | ||
Nix will setup an isolated environment for each build process. | Nix will setup an isolated environment for each build process. | ||
It is used | It is used to remove further hidden dependencies set by the build environment to improve reproducibility. | ||
This includes access to the network during the build outside of <code>fetch*</code> functions and files outside the Nix store. | This includes access to the network during the build outside of <code>fetch*</code> functions and files outside the Nix store. | ||
Depending on the operating system access to other resources are blocked as well (ex. inter process communication is isolated on Linux); | Depending on the operating system access to other resources are blocked as well (ex. inter process communication is isolated on Linux); | ||
Line 14: | Line 14: | ||
Sandboxes are not enabled by default in Nix as there are cases where it makes building packages harder (for example <code>npm install</code> will not work due missing network access). | Sandboxes are not enabled by default in Nix as there are cases where it makes building packages harder (for example <code>npm install</code> will not work due missing network access). | ||
In pull requests for [https://github.com/NixOS/nixpkgs/ nixpkgs] people are asked to test builds with sandboxing enabled (see <code>Tested using sandboxing</code> in the pull request template) because in [https://nixos.org/hydra/ official hydra builds] sandboxing is also used. | In pull requests for [https://github.com/NixOS/nixpkgs/ nixpkgs] people are asked to test builds with sandboxing enabled (see <code>Tested using sandboxing</code> in the pull request template) because in [https://nixos.org/hydra/ official hydra builds] sandboxing is also used. | ||
Depending if you use NixOS or other platforms you can use one of the following methods to enable sandboxing. | |||
== Enable sandbox builds in NixOS == | == Enable sandbox builds in NixOS == |