Summary


The Traditional NixOS Flow (Without Flakes)

Before flakes existed, NixOS worked like this:

  1. Entry point: /etc/nixos/configuration.nix (hardcoded location)
  2. Command: sudo nixos-rebuild switch
  3. Package source: A channel (like a subscribed package feed) set via nix-channel

The system would read configuration.nix, resolve all imports, and build the system. Channels were mutable and could change between builds, making reproducibility difficult.

Your alias bnixnf (sudo nixos-rebuild switch) would use this traditional flow.


What Are Flakes?

Flakes are a new, opt-in feature that provide:

You enabled flakes with this line in configuration.nix:

nix.settings.experimental-features = [ "nix-command" "flakes" ];