3 ms·
The hardest thing to understand here about Guix is exactly what it does, because there's only 3 tools out there that operate like this (that I'm aware of, at le
by echohack5 7y ago
The hardest thing to understand here about Guix is exactly what it does, because there's only 3 tools out there that operate like this (that I'm aware of, at least):
- GNU Guix
- NixOS
- Chef Habitat
These three tools have some common themes but ultimately accomplish different end goals.
Some common things:
- They all provide a package manager that exists outside of the regular scope of your operating system.
- They all bundle together your compiled application code AND configuration code AND runtime dependencies into one package, making it easy to just run your application.
Some differences:
Nix. [Edit: It was pointed out that the package manager Nix, is separate from NixOS, and this package manager can be run on any operation system). (https://nixos.org/ https://nixos.org/) (https://github.com/NixOS https://github.com/NixOS)
GNU Guix has a larger focus on reproducibility and archival properties of software. In other words, Guix uses it's ability to run software independently of your operating system as a way of ensuring authentic, realistic, and 100% portable applications. Guix wants to build your application FIRST, and ignore whatever problems your OS might present to you. It lets you build a development environment in a "clean-room" with the environment command. It also lets you write those configurations and environments using Guile programming interfaces and the Scheme programming language, which is super powerful. (https://www.gnu.org/software/guix/ https://www.gnu.org/software/guix/) (https://github.com/pjotrp/guix https://github.com/pjotrp/guix)
Chef Habitat is very similar to GNU Guix, except it also works for Windows packages. It's primary goal is so that you can build and deploy your applications completely independently of the constraints of your operating system or runtime environment. Just like GNU Guix, this makes it super awesome to take old applications that are "stuck" on old operating system environments and quickly port them to whatever modern OS or runtime format you wish. Like GNU Guix, it has a chrooted clean-room environment called the Studio and uses Bash/Powershell to allow you to build packages. Chef Habitat diverges from GNU Guix in that it provides a runtime process supervisor that has auto-update / continuous delivery capabilities, and also provides a gossip protocol so that applications can talk to each other and do things like leader election automatically. (https://habitat.sh https://habitat.sh) (https://github.com/habitat-sh/ https://github.com/habitat-sh/)
Overall, I think most people will be confused when they approach these tools because they've never used anything like them before. But once you get your hands in them you'll realize how awesome they really are.
- jchw 7y agoHuh? Nix can run on other OSes. NixOS is just an OS built on Nix, the same way GuixSD is an OS built on Guix. Am I missing something?
- smilliken 7y agoRight, you don't need NixOS to run the package manager. The package manager runs on Linux and MacOS. I've been using Nix for years, in dev and production, and haven't bothered to try NixOS yet. https://nixos.org/nix/ https://nixos.org/nix/
- echohack5 7y agoAh, that's my mistake then! Apologies -- I've edited the parent.