Nix

Updated: 06 November 2025

Flakes

  • Flakes are experimental but recommended.
  • A flake reference is a string representation of where the flake is located.
  • A Nix flake is a directory with a flake.nix and flake.lock at the root.
  • Flakes take Nix expressions as input.
  • Flakes can use the outputs of other flakes as inputs.
  • Flake outputs are defined by a function.
  • Flakes can have multiple simultaneous outputs.
  • The output of a flake is a Nix expression.

A flake output can be used to:

  • Build Nix packages.
  • Run programs.
  • Create development environments.
  • Launch NixOS systems.

See here for more details.

Home manager

https://github.com/nix-community/home-manager

Nix Shell

Start a nix shell which includes PHP 8.4

nix --extra-experimental-features "nix-command flakes" shell nixpkgs#php84