← Back to context

Comment by z_mitchell

12 days ago

It uses Nix under the hood.

I would argue that Nix does not make trivial environment setup easy. One of the reasons I love Flox for my own development is that I can just "flox install" packages. That doesn’t really exist for project-specific packages with Nix ("nix profile install" exists, but that installs globally). I would say give Flox a try and see if you actually run into issues. If you do, we're pretty good about fixing them as they come up.

It has also not been my experience at all that Nix packages are "often unmaintained and simply broken." I use Nix every day for work, and I use it to configure all of my personal machines (on both macOS NixOS). Can't say that's ever really been a problem for me.

In my case I couldn’t get Rust working and ran into strange compilation issues with linker errors with the MacOS standard libraries. Tried installing them from Nix which fixed some problems but caused other ones.

Everything just worked outside of the Nix environment so ended up dropping it.

  • https://flox.dev/docs/cookbook/languages/rust/

    That describes how to get set up with Rust. Long story short, cargo depends on a linker and brings it along, but doesn’t expose it to other programs via PATH. If there are build scripts that call out to rustc or a linker directly then you need to explicitly install one. This is intentional, but yeah it can be surprising when you get an error about not finding a linker.

    You also need libiconv on macOS for reasons, but all of this is described in the link above.