I’m so glad to see this kind of blog posts about Nix.
I’m under the impression that Nix has the same problem than git.
Pretty neat tool but with terrible user interface. And for me it ends up on what could look like meaningless details.
Imagine if instead of nix-env -qa <pkg> it was nix search <pkg>, if instead of nix-env -i <pkg> it was nix install <pkg>, if instead of nix-store --gc it was nix clean etc…
nix-env -qa <pkg>
nix search <pkg>
nix-env -i <pkg>
nix install <pkg>
Of course I could always use personal aliases. But that’s not the point. The UI change how I can think about the tool, in the same way that git checkout can be used for different purposes in my mind (reverting a file, changing my current branch…)
I’m so glad you think so, too. Fortunately we have a new UI in the works, to make the UI reasonable.
Nix seems like a good idea, but I’m not sure how to start using it in combination with my current linux distribution and configuration setup.
I’ve started to use it in build pipelines for CI and builds. It’s the kind of place you would ‘traditionally’ (!) use some container setup, but I’m quite happy to be able to avoid those.
Installing it on your laptop works well, although I did not install any daemons with it. When I get there it’ll likely use systemd ‘by hand’. I’m not convinced enough to go 100% nixos :)
Nix can produce deb’s and rpm’s. Or when you build, you can capture the path to its binary in the store, and tar up its “closure” (the executables of your package, and all of its dependencies) to copy to any other computer. You don’t even need Nix on the target computer!
If you would like some help with either of these, I’m sure we’d love to help in #nixos on Freenode.
Fantastic walkthrough. I fell in love with Nix the moment I started using it. Neat tool, but it needs a better UI for sure.