Hacker News new | past | comments | ask | show | jobs | submit login

Nix is nice. However, some practical aspects are (still?) quite ugly. It lacks decoupling between packages and optional runtime dependencies. You can disable optional dependencies, but this would lead to a different package hash negating the use of prebuilt binaries.

Therefore, the culture seems to have all default package builds with all optional dependencies on. This leads to situations such as installing mutt and getting python too! (mutt -> gpgme -> glib -> python)

Last time I checked, if you installed git, you'd also get subversion, etc. Quite sad, given that nix is full of so many fantastic ideas. Hope it matures soon.




For git they have a minimal version too:

    dev::hlinux { /home/sibi }-> nix-env -i --dry-run     git-minimal-2.1.4
    (dry run; not doing anything)
    installing ‘git-minimal-2.1.4’
    these paths will be fetched (11.69 MiB download, 69.16 MiB unpacked):
      /nix/store/4qh8anh4phwx3gmrn2k49zh5xbkn49ir-git-2.1.4
      /nix/store/4x0w8x70j27jxmy9wsn7sijrjjzj3dgj-pcre-8.36
      /nix/store/g9qkr44yllgy5cb03vmfdksmh3pbmp1s-gnugrep-2.20
      /nix/store/gwcvzrwyvgkgwlrgfyj4gqvsqn5syv1c-expat-2.1.0
      /nix/store/rhghn8brqrz4j5ndkhwnm4afqjvk7zi8-python-2.7.9


I think you could define your own mutt package that doesn't have the optional stuff, although it may be a lot of work.


I don't know much about the nix language, but it looks to me like the gpgme support is optional:

https://github.com/NixOS/nixpkgs/blob/master/pkgs/applicatio...


The thing is easy to fix. The problem is that (i) most packages are far from minimal (ii) you loose pre-built binaries.


True enough. I wonder how much of the problem comes from trying to be compatible with software packages designed for other systems.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: