Hi, On 16/10/14 13:00, Ertugrul Söylemez wrote:
> The basic idea is this: To build a system, you use a standard function > from Nixpkgs and pass it a configuration module. The result is a > derivation that represents a complete self-contained system. How does that differ from how NixOS is currently implemented? You can do: $ nix-build '<nixpkgs/nixos>' -A system which gives you a complete system in ./result, where e.g. ./result/init is the stage 2 init script that runs the activation script and invokes systemd. Programs like nixos-rebuild, nixos-install, nixos-container and even NixOps are really just wrappers around this (except that they add various levels of provisioning). > In other words a container-based NixOS system is really just a Nix > store, nothing more. It doesn't need to contain any additional files or > directories and building it does not require us to understand the > complexity of nixos-install, because it will all be moved to the system > initialisation phase. I don't think nixos-install is that complex. Almost all of the initialisation it does in the target file system is to make nix-build work in the chroot. The NixOS initialisation is done by the activation script. Check out "nixos-container create" - it does almost no initialisation of the container file system, since everything is done by the activation script during the first boot of the container. -- Eelco Dolstra | LogicBlox, Inc. | http://nixos.org/~eelco/ _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev