Flakes: Difference between revisions

Pigs (talk | contribs)
m Link to direnv page
Pigs (talk | contribs)
You can't use channels like <nixpkgs> in a flake, remove erroneous advice
Line 301: Line 301:
<!--T:156-->
<!--T:156-->
* builtins.currentSystem is non-hermetic and impure. This can usually be avoided by passing the system (i.e., x86_64-linux) explicitly to derivations requiring it.
* builtins.currentSystem is non-hermetic and impure. This can usually be avoided by passing the system (i.e., x86_64-linux) explicitly to derivations requiring it.
<!--T:157-->
* Imports from channels like <code><nixpkgs></code> can be made pure by instead importing from the <code>output</code> function in <code>flake.nix</code>, where the arguments provide the store path to the flake's inputs:
</translate>
<syntaxhighlight lang="nix">
outputs = { self, nixpkgs, ... }:
  {
    nixosConfigurations.machine = nixpkgs.lib.nixosSystem {
      modules = [
        "${nixpkgs}/nixos/modules/<some-module>.nix"
        ./machine.nix
      ];
    };
  };
</syntaxhighlight>
<translate>


== The nix flakes command == <!--T:64-->
== The nix flakes command == <!--T:64-->