Package Management
This section describes how to add additional packages to your
system. NixOS has two distinct styles of package management:
Declarative, where you declare what
packages you want in your configuration.nix.
Every time you run nixos-rebuild, NixOS will
ensure that you get a consistent set of binaries corresponding
to your specification.
Ad hoc, where you install, upgrade and
uninstall packages via the nix-env command.
This style allows mixing packages from different Nixpkgs
versions. It’s the only choice for non-root users.