Some time ago, I’ve moved this jekyll-based blog from GitHub Pages to a self-hosted NixOS server. A few weeks ago, I’ve also moved some parts of my local OS X environment from homebrew over to nix.
In this post I will share some of the experiences with using nix on OS X.
nixpkgs, the default source of packages for the nix package manager, has many of the basic command-line packages you’ll need on OS X. Especially if you do haskell development, you will find everything you need.
Sometimes you want to use a package which is available, but not building successful on OS X. PHP is such a package. At the moment you cannot install PHP via nix on OS X. For this reason I could not drop homebrew completly yet.
Some less used packages, like e.g. facebooks fpp are sometimes not available. But it’s pretty easy to add missing packages to nixpkgs.
Many GUI-based packages are also not available for OS X yet. Compare this to brew, where you can install many of them via homebre cask just fine.
Compared to homebrew, the user experience of nix is not so good.
Let’s say I want to list all the installed packages. With brew it’s just
brew list, with nix it’s
nix-env -q. Obviously the first way is easier to remember.
Or let’s say I want to find a package. With brew it’s just
brew search somepackage, with nix it’s
nix-env -qa somepackage.
The good news is that the nix team is working on a redesign of the command line interface already.
Sometimes a nix package is broken on OS X. On homebrew you can expect every package to work. While this is more a technical issue, it’s also part of the user experience.
Contributing To nixpkgs
nixpkgs is on GitHub. This means it’s very easy to contribute. E.g. when I was missing fpp, I just created the package myself and opened a pull request. Usually you get helpful responses very fast by the nixpkgs team. Also pull requests get merged very fast.
I had many positiv experiences contributing to nixpkgs, kudos to the nixpkgs people :)
Nix is still not as good as homebrew. If you expect your package manager to work very reliable, you expect nearly all well known software to be available and you don’t want to build your own packages when something is missing, then nix is not the right choice for you, yet.
But if you feel like an early adopter, try it out. Nix is the future of package management.
Thanks for reading :) Follow me on twitter if you’re interested in more of this stuff!
If you liked this post feel free to subscribe to my mailing list.