3 ms·
Can you give me an example of projects which require this setup? (Even a personal anecdote will do)
by educar 10y ago
Can you give me an example of projects which require this setup? (Even a personal anecdote will do)
- mikeho1999 10y agoI've never heard of nix, so I can't comment to that specifically. But being able to have multiple / separated environments on my machine would be hugely beneficial. Working for a full-time software consulting agency, I'm normally actively working on many projects at the same time, each of which have their own nuances of packages that are required (e.g. different versions of PHP, different sets of dependencies, etc.) So if nix truly offers seamless switching between environments (and if it can do it quickly and efficiently), it would definitely be worth it for me to look into it further.
- Ericson2314 10y agoIt utterly does!
- educar 10y agoCan't reply to sibling post for whatever reason. > Working for a full-time software consulting agency, I'm normally actively working on many projects at the same time, each of which have their own nuances of packages that are required (e.g. different versions of PHP, different sets of dependencies, etc.) I don't think this is what Nix offers. This is more like a homebrew competitor (I assume you don't use homebrew to install php...).
- swsieber 10y agoAccording to zachrose though (GP) it's exactly what it's supposed to do. See also this comment (great uncle post?) https://news.ycombinator.com/item?id=11773206 https://news.ycombinator.com/item?id=11773206 It talks about being able to setup and instance of emacs referencing a specific nix environment. Edit: This comment also talks about using it to solve virtualenv shortcomings. https://news.ycombinator.com/item?id=11773036 https://news.ycombinator.com/item?id=11773036
- cstrahan 10y agoYes, this is what Nix offers. You can trivially have have multiple versions of stuff installed without conflicts. Personally, I have multiple versions of the GHC Haskell compiler, Clang/LLVM, Go, Node, etc. In fact, I keep shell.nix file in each of my repositories at work, and all I have to do is $ nix-shell in each project root and -- like magic -- I have all of the compilers/environment-variables/etc setup for work. Meanwhile, outside of that terminal window, my system is untouched. Nix is quite different from just about any other package manager out there. If there's something that seems unfeasible or impossible, please feel free to ask specific questions to challenge my assertions. Nix is so different that it will be tempting to think "surely he means... no, that can't be possible, he must be mistaken... but how would that work?" Rather than silently thinking those things, please feel free to skip right to asking "how?" (For more details, see also my long post to your original statement/question)
- RubenSandwich 10y agoHere is a personal anecdote: Managing multiple versions of openCV on OS X. OpenCV has a long laundry list of dependencies and trying to get two versions to build can be a nightmare. (It's much easier to just update one of your projects to use the same version of OpenCV as the other one.) With Nix each of those OpenCV versions can live completely isolated from each other so their dynamically linked dependencies don't get overridden by each other.