4 ms·
> Had their developers known what they were actually writing, perhaps we'd have a lean and mean solution that did the right thing. I am surprised nobody mentio
by amirouche 11y ago
> Had their developers known what they were actually writing, perhaps we'd have a lean and mean solution that did the right thing.
I am surprised nobody mentionned nix, nixos and guix.
- davexunit 11y agoGood time to raise awareness for these projects, both of which solve this problem extremely well.
- pron 11y agoCan you explain what those are and what they do?
- davexunit 11y agoNix and Guix are purely functional package managers, meaning that software builds are treated like a mathematical function: Input the same source code + dependencies and receive the same build as output. They have features such as reproducibile (often bit identical) builds, transactional package upgrades and rollbacks, and unprivileged package management. They solve the dynamic linking problem by allowing each package to refer precisely to the dependencies that it was built with. With this mechanism in place, it becomes very easy to use applications that require different versions of some C library, or a different Ruby/Python interpreter, or whatever else. Furthermore, it can do this without relying on a specific type of file system, and without requiring that applications be run inside containers or virtual machines. This makes it very composable and general-purpose. https://nixos.org/ https://nixos.org/ http://www.gnu.org/software/guix/ http://www.gnu.org/software/guix/
- amirouche 11y agoWhat it doesn't do: handling cpu quota on per "stack" basis, no builtin security isolation. That said, both use container technology for that. By solving the issue at a layer below (instead of adding one like docker does) it makes things much cleaner, more powerful making obselete puppet and the like. FWIW describing a containers/vm's/os'es in guix is much more easy than using docker. Have a look at https://github.com/NixOS/nixops https://github.com/NixOS/nixops too.