[Nix-dev] Ideas for systematically avoiding unwanted runtime dependencies

Daniel Peebles pumpkingod at gmail.com
Thu Aug 27 00:15:33 CEST 2015


Hi all,

As I build more and more images with Nix, I'm becoming acutely aware of our
awkwardly large runtime closures (often filled with irrelevant packages),
and I'm wondering if people have ideas for how to avoid it.

I've posted an issue[1] related to this in the past but figured I'd ask on
the mailing list too.

Basically, lots of packages have configuration scripts that will (often for
dubious reasons) save various aspects of the configuration that built them
into their outputs. This leads to unnecessary runtime dependencies on gcc
and a whole host of other build-time crap, and often obviates the
build/runtime dependency distinction.

Right now I'm struggling with my image pulling in gcc because it
legitimately depends on icu4c, which mysteriously retains a runtime
dependency on gcc. Regardless of specifics, individual packages can usually
be fixed to reduce their runtime footprint, but I'm looking for ideas for
how to do so in a systematic manner, so we don't just notice these things
by accident and fix them one by one. Does anyone have any thoughts?


Also, multiple outputs won't really help with this problem because there's
nothing stopping these packages from retaining references to many of our
outputs.

Thanks,
Dan


[1] https://github.com/NixOS/nixpkgs/issues/5895
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/nix-dev/attachments/20150826/71310b03/attachment-0001.html 


More information about the nix-dev mailing list