For something like that where you likely want it everywhere, I would probably layer it on top of the base system (with rpm-ostree install zsh). That uses the same Fedora package management as dnf but applies it as a changeset on the immutable system instead of modifying things directly.
Something more specific to a single category of task (I’m thinking like Rust or Python tooling) you might want to leave in a container.
For something like that where you likely want it everywhere, I would probably layer it on top of the base system (with
rpm-ostree install zsh
). That uses the same Fedora package management as dnf but applies it as a changeset on the immutable system instead of modifying things directly.Something more specific to a single category of task (I’m thinking like Rust or Python tooling) you might want to leave in a container.