So it's kind of like machine configuration as code, with Nix doing the heavy lifting.
That sounds interesting. However, I wonder how it deals with scenarios like using "flox pull" to do an initial setup, then manually installing something, then months later trying to reconcile what the code says should be installed and what's actually installed.
Which dependencies are you usually combining when you are developing?
I think you may really like flox, because flox will "lock in" the exact cryptographic hashes of the items you have installed and configured. So with flox, it becomes completely reproducible. Yet, you can still use the basic tools that you typically use to develop software (IDE, build tools, makefiles etc).
Have you used Nix? As far as I know, you can't manually install something, at all. You need to add it to the Nix config for it to go in the environment.
You could make it look like manually installing but have it change the definition of the environment, like NPM does with package.json. It wouldn't be distinguishable for someone who doesn't care about Nix.
I tried once before on Mac, but never could get it working properly.
My impression of Nix on Mac is that it doesn't have exclusive control of your system, so it would be possible to install something outside of its control loop.
Comments
So it's kind of like machine configuration as code, with Nix doing the heavy lifting.
That sounds interesting. However, I wonder how it deals with scenarios like using "flox pull" to do an initial setup, then manually installing something, then months later trying to reconcile what the code says should be installed and what's actually installed.
Which dependencies are you usually combining when you are developing?
I think you may really like flox, because flox will "lock in" the exact cryptographic hashes of the items you have installed and configured. So with flox, it becomes completely reproducible. Yet, you can still use the basic tools that you typically use to develop software (IDE, build tools, makefiles etc).
Have you used Nix? As far as I know, you can't manually install something, at all. You need to add it to the Nix config for it to go in the environment.
You could make it look like manually installing but have it change the definition of the environment, like NPM does with package.json. It wouldn't be distinguishable for someone who doesn't care about Nix.
I tried once before on Mac, but never could get it working properly.
My impression of Nix on Mac is that it doesn't have exclusive control of your system, so it would be possible to install something outside of its control loop.
For Flox? It sounds promising, but I haven't gotten around to testing it yet.
I was talking about Nix itself, before.