8 ms·
I really wish Guix and NixOS had more usage in the industry. I am not sure if these are the projects that are going to drive the innovation, if they are only s
by muxator 9y ago
I really wish Guix and NixOS had more usage in the industry.
I am not sure if these are the projects that are going to drive the innovation, if they are only showing the way for the 2nd-generation functional package managers, or if this will just remain a niche forever.
- nextos 9y agoThere are some deployments in the industry already. AFAIK, Logicblox employs Nix creator. Both Nix & Guix are past proof-of-concept stage. In particular, I've found Guix very elegant, simple and useful.
- greenhouse_gas 9y agoThe problem is that _every_ _single_ _program_ has to have its configuration files rewritten to take nix or guix into account, and every sysadmin has to know how to use the new nix or guix way.
- nextos 9y agoI don't think this is the case. I've packaged several things for Guix, and patches are rare. Stuff that has good configuration (e.g. uses GNU make, and thus accepts --prefix) will be fine.
- greenhouse_gas 9y agoWait, I thought that guix (like nix) keep their full configuration in flat nix or lisp files (like https://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html https://www.gnu.org/software/guix/manual/html_node/Using-the... )? I never really tried guix, but that's how nix works ( https://nixos.org/nixos/manual/index.html https://nixos.org/nixos/manual/index.html ). So how does Apache configuration on upstream (meaning, how it's configured on Windows/Linux/FreeBSD) correlate to how it's configured on nixos/guix?
- nextos 9y agoIt depends. You can install it with nix/guix and configure it as in any other Linux distro. Or, if it's a service you want to make the configuration totally reproducible, you can use https://www.gnu.org/software/guix/manual/html_node/Services.html https://www.gnu.org/software/guix/manual/html_node/Services.... interfaces for those packages that have some written for them. But there's nothing wrong with regular dotfiles.
- hd4 9y agoWhat would boost uptake is for just one of the major distros, especially Ubuntu, to release a spin/variant based off either.
- thomastjeffery 9y agoThere are still, unfortunately, some rough edges with Nix. Nix does not use versions for packages, instead relying on channels and pinning, which can be confusing at best. There is a manual, but not a good wiki. While you can learn to read the syntax, there isn't any good introduction to write it. Nix derivations are very unique, and difficult to approach without examples and guidance.
- agumonkey 9y agoOut of curiosity, were you already knowledgeable about lisp/scheme/fp before using nix ?
- thomastjeffery 9y agoYes. It's not the functional nature of Nix that is hard to deal with. Nix's functional nature is actually its saving grace. My difficulty with Nix is that there are important subjects that aren't taught. I figured out how to create a usable `default.nix` and `shell.nix`, but that takes a lot of effort, and there really aren't many resources to reference. Nix expressions use a lot of predefined functions, and I have no idea where their documentation exists, if it does at all. Even if there is some explanation for all of the functions that I need to use, there isn't documentation for how to fit them together. Instead of being in dependency hell on the outset (like most package managers), I find myself in dependency hell when I want to do something different. The Nix community has an irrational hatred of version numbers, meaning you have to scour the web for a derivation that gets the right version of a dependency, and "pin" it, or hope that the channel you are using has the correct version. Even when channels do have the version you want, sometimes that channel provides multiple package versions, some with the version in the name. Names are a mess. Since every package must exist in the same namespace, but its derivation is helpfully sorted into a directory tree, the same packages will often have different names. There isn't a good way to search or browse for them either. I end up digging through github quite often, which is a lot more often than the never that I should find myself doing so. Nix is wonderful. NixOS is by far my favorite OS, and that is why I deal with all of the rough edges, but they certainly are rough.
- rekado 9y agoGuix is used as a package manager in HPC environments in order to deploy reproducible software environments. There's a dedicated Guix HPC project: https://guix-hpc.bordeaux.inria.fr/ https://guix-hpc.bordeaux.inria.fr/