NixOS important commands
After I distro hopped from Archlinux to NixOS, I’ve been having to learn the Nix ecosystem and package management commands. I’ve found the migration from Archlinux to NixOS OK, but I am still struggling remembering some important Nix commands.
Updating packages #
sudo nix-channel --update -vv to update to the latest nix channel. This will essentially pull nixos-unstable and nixpkgs-unstable.
nix flake update Will update my flake.lock file with the latest version.
Rebuilding machine #
sudo nixos-rebuild switch --flake /home/seds/workspace/dotfiles/.#default rebuilds and applies latest changes/updates.
Diffing builds #
nvd diff /run/current-system result will diff the curren system with the recent build result. Handy to keep track what changed between rebuilds.
List generations #
nix-env --list-generations will list all existing builds.
Garbage collect generations #
nix-collect-garbage -d will garbage collect old generations.
Start a shell with a specific package #
nix-shell -p <package> will start a shell with <package> installed.
Run a custom nix-shell
#
nix-shell python-poetry.nix --command zsh will execute python-poetry.nix shell and drop you into a zsh shell.