I am very new to Nix and need some help figuring out how to remove certain system packages to trim the NixOS down. For context, I am using NixOS inside of LXC containers at the moment and I am trying to shrink the image size. So far I got down to 1.6 Gb, but I feel like I can trim some things even further (coming from Gentoo world where my minimal usable builds were under 200 Mb).
At the moment I am using
nix-env --list-generations --profile /nix/var/nix/profiles/system to get me a full list of dependencies required by the system profile. On that list I have quite a few things that I would like to get rid of, for example:
/nix/store/pxp56zkk6wbzf8nrnsq89q73vswy34w8-libressl-3.6.1 /nix/store/0hmm7s3xsip57iza41ybzbqg2aln548s-libressl-3.6.1-nc /nix/store/di2xpgzgmglq6p6zq4qc8wzlvr7nvzad-mdadm-4.2 /nix/store/9xdak9iv5vvq7xqb2sfy21f3fkxk1c4p-system-sendmail-1.0 /nix/store/0hzd3p6ycddp4mk3scwkqclljfgk4vda-btrfs-progs-6.1.2 /nix/store/sxwpyh0zhg3dwf7izcgjnnya1lskvc2s-mailcap-2.1.53
And many others. Looking for their referrers, I often end up in
system-shutdown paths and I am struggling to figure out how I can trim them down. For example:
# nix-store --query --referrers /nix/store/di2xpgzgmglq6p6zq4qc8wzlvr7nvzad-mdadm-4.2 /nix/store/di2xpgzgmglq6p6zq4qc8wzlvr7nvzad-mdadm-4.2 /nix/store/0fi5f12xzagldmfni8kb27kzaa9a44h1-system-units /nix/store/37gpvcj3r1g9qjpr15vv30q6122zc7hn-system-path /nix/store/5vx86l25fm4wnf95qfiilvxrsriljnk5-system-path /nix/store/97h0pmajnnyy7zxs4mdxgkjamim589pr-system-units /nix/store/hhivdc08yk8lmiwaxs1gjxr1hyxx9fmr-system-shutdown /nix/store/z9zi0vbw3wginj314fkd2wcvgf5l0pvl-system-shutdown # nix-store --query --referrers /nix/store/0hmm7s3xsip57iza41ybzbqg2aln548s-libressl-3.6.1-nc /nix/store/37gpvcj3r1g9qjpr15vv30q6122zc7hn-system-path /nix/store/5vx86l25fm4wnf95qfiilvxrsriljnk5-system-path
What is the best way to approach this?
Appreciate any ideas!