PM¶
Runtime recipes for managing OS-level packages declared in home/.chezmoidata/packages.yaml. The install/update verbs
dispatch automatically to every package manager available on the current platform (brew, apt, dnf, flatpak); absent
managers are silently skipped.
These recipes install declared packages on demand after init — chezmoi apply re-renders the source data but does not
install. See the Package Management guide for the full model (init vs runtime,
install-side-only, etc.).
Recipes¶
just sys pm install¶
Install missing packages declared in packages.yaml on every detected manager. Idempotent — package managers themselves
skip already-present packages. Use after editing packages.yaml to bring the running system into sync with the declared
state.
just sys pm update¶
Refresh repos + upgrade installed packages, then install missing declared packages. The "everything fresh" verb — use periodically to keep the system current.
just sys pm edit-package-data¶
Open packages.yaml in $EDITOR, prompt to apply chezmoi (which re-renders the Brewfile and other generated files),
then point at just sys pm install for installing newly-declared packages.
Platform notes¶
-
brew — Homebrew. Primary user-space manager on macOS and most Linux. Reads the
brewandcasksets frompackages.yamlvia the rendered~/Brewfile. On Bluefin, brew is a first-class citizen —sys pm updateis the right tool for routine refreshes. -
apt — Debian-derived distros. Requires passwordless sudo. Reads the
linux_aptset frompackages.yaml. -
dnf — Fedora-derived distros. On Bluefin/Silverblue the host image is managed by
rpm-ostree/bootc, not dnf; but Bluefin's default terminal (Ptyxis) drops you into a Distrobox container by default, where dnf works normally and the recipe installs into the container. For installing onto the Bluefin host image proper, userpm-ostree install(out of scope for these recipes by design). Reads thelinux_dnfset. -
flatpak — Linux desktop apps. Requires the
flathubremote; Bluefin ships with it. On bare distros without it:Skipped in containers — flatpak GUI apps are categorically inappropriate there. Reads the
flatpakset.
Brew-specific notes (replacements for removed recipes)¶
The previous brew::bundle-check and brew::bundle-list recipes were removed as low-value wrappers. The underlying
brew commands remain:
brew bundle check --file ~/Brewfile # drift report — what's missing?
brew bundle list --file ~/Brewfile # what's declared in the Brewfile?
For installing onto the Bluefin host image proper (drivers, VPN daemons, etc.), use rpm-ostree install <pkg> directly.