1. System-wide installation means packages are readily available to all users, which can be nice, but users then don't have the freedom to remove them. For maximal flexibility, it's often best to leave system-wide packages to the bare minimum and let users choose what they want. If you are preparing a distribution for an organization, requirements could be different. Your mileage may vary. 2. I also combine emacs-guix and helm-system-packages a lot ;) My personal take at this issue is to generate the manifest from all installed packages with the following shell script:
--8<---------------cut here---------------start------------->8--- cat<<EOF>"$PKG_ROOT/guix" (specifications->manifest '( EOF guix package -I | awk '{printf("\"%s", $1); if($3!="out") {printf("%s", ":" $3)}; print "\""}' | LC_ALL=C sort >>"$PKG_ROOT/guix" echo "))" >>"$PKG_ROOT/guix" --8<---------------cut here---------------end--------------->8--- There might be better ways to do this.