5 ms·
Is this Guix Nix but with a different language? How is it different? So far I only knew Nix, now I see more and more Guix popping up…
by teekert 3y ago
Is this Guix Nix but with a different language? How is it different? So far I only knew Nix, now I see more and more Guix popping up…
- deleted 3y ago[deleted]
- bheadmaster 3y agoIt is inspired by Nix, but with a few key differences: - it is developed under the flag of the GNU Project, so you can expect the same standards of quality of both code and documentation as the rest of the GNU Project - it uses GNU Guile as the main language of the system instead of Nix, which (allegedly) allows you to extend or modify the behavior of the whole system - it uses GNU Shepherd as the service manager instead of systemd All the main goals of the projects are pretty much the same.
- goosedragons 3y agoThe other big thing is that being a FSF project they are much more committed to free software than Nix. It's harder to get stuff like Chrome, Steam, Nvidia drivers etc. Not impossible but you're definitely swimming against the current in trying.
- pasc1878 3y agoAnother big thing is Guix only works on GNU/Linux and not on macOS and other Unixes like FreeBSD which Nix does run on.
- kdtsh 3y agoImportant to note that it’s not hard or swimming against the current - you just use the nonguix channel, which has all of those things and is a perfectly acceptable use of the system (it’s what channels are for) - but it’s not in the default installation.
- davexunit 3y agoYeah I second this. I use the nonguix channel for my laptop. Very well supported and easy to use.
- ducktective 3y ago>you just use the nonguix channel Opened up https://gitlab.com/nonguix/nonguix https://gitlab.com/nonguix/nonguix. Literally the second sentence in the project information section, top of the page: "Please do NOT promote or refer to this repository on any official Guix communication channels." Weird thing to say something like this there. Too ideological for someone who wants to get stuff done.
- davexunit 3y agoI agree this policy should change but I and many others get stuff done just fine.
- bheadmaster 3y agoIt makes sense to me. They don't want to compromize their mission - which is to provide a fully-free operating system. But they recognize that, at the current moment, non-free software is required for many users. So they maintain an unofficial repository for non-free software, and avoid endorsing or promoting it on the official channels. > Too ideological for someone who wants to get stuff done. The maintainers of Nonguix are mostly the same people working on Guix, so you can expect the same amount of ideology :)
- Modified3019 3y agoThis is what ultimately bounced me away, along with seeing some negative interactions others had. Sure I might not end up with problems, but I’m going to choose to believe them when they tell me the official communication channels will be hostile to me if I do have problems that need the unclean fixes. Which is a shame, because I think there are some technical things which guix does better, but I find it’s more important to not have to worry about saying the wrong things in the wrong places when troubleshooting basic issues like what I get with the nix community.
- teekert 3y agoSo is it like “Nix isn’t free (as in RMS) enough?” Is it like Devuan to Debian? Is it like GNU Herd to Linux? (Surely not since it’s Linux ;))
- davexunit 3y agoNo it's not like that all. Free software is a component of it, but Guix is not a fork. It's a completely separate implementation of the functional package management model with many significant differences and advancements. It uses Scheme, a general purpose and extensible programming language, rather than a custom DSL like Nix. Scheme is used for build scripts as well and a lot of code can be shared between the host and build containers. Nix uses Bash. Having one language unifying all the layers makes it easier to hack on the entire stack. Guix has a stronger focus on reproducible and bootstrappable builds and is making notable advancements on the "software supply chain" security problem. OS service configuration is done through a graph extension system whereas Nix uses something more like a flat hash of config values. I could go on but I hope this makes the point that Guix isn't just taking Nix and removing proprietary stuff. It's its own thing.
- rekado 3y ago> Is it like GNU Herd to Linux? (Surely not since it’s Linux ;)) You actually can use the Hurd as a kernel with Guix System. Or run a Hurd VM on your Linux-based Guix System with the childhurd.
- operator-name 3y agoThere's also been a greater focus on reproducibility: https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/ https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-...
- bheadmaster 3y agoOh yes, I completely forgot to mention that monumental achievement :) For any readers unfamiliar with the importance of reproducible full-source boostrapping, please consider reading the paper "Reflections on Trusting Trust" by Ken Thompson [0], the creator of Unix. [0] https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_Ref...
- viraptor 3y agoSame... Apart from the extreme view on freedom in guix. Loadable firmware? No. Microcode updates for your CPU? No. Not free enough! There's non-guix and all that, but really... if the main project tells you this is now what they want, you will run into issues one day.
- hardwaresofton 3y ago> - it uses GNU Shepherd as the service manager instead of systemd I wish they didn't do this part. Despite the furor that was around systemd, it's actually quite nice to use day-to-day. But also, I realize that the FSF has to do what the FSF has to do, glad they're around.
- rekado 3y agoThe FSF is not involved in the project. The FSF had no say in what service manager we use. A common misconception is that we somehow don't like systemd. It just so happens that having a thing that's written in Guile (like the rest of Guix) allows for some code sharing. Hey, we've got the initrd in Guile, too. Might as well go all the way, eh?
- hardwaresofton 3y agoApologies, I assumed that being a GNU project (which is supported by the FSF), the project identified as an FSF project. > A common misconception is that we somehow don't like systemd. It just so happens that having a thing that's written in Guile (like the rest of Guix) allows for some code sharing. Hey, we've got the initrd in Guile, too. Might as well go all the way, eh? I didn't have this misconception, but let me correct my statement: But also, I realize that guix devs have to do what guix devs have to do, glad they're around.
- amszmidt 3y agoGNU Shepherd (was aka DMD) predates systemd by many years. And many other “PID 1” efforts. It also had different goals when Wolfgang and I designed it, one might say even incompatible since we were targeting the GNU/Hurd specifically and wanted easy ways to manage translators there on a per user basis.
- rekado 3y agoOne thing that hasn't changed, though, is that compatibility with the Hurd is still a major goal. Sadly (but understandably) development pushes forward for Shepherd on Linux and then we aim to make it work on the Hurd, instead of letting Hurd-native facilities guide development. But this might change as there is considerable overlap between Guix contributors and Hurd enthusiasts.
- rendaw 3y ago- All issue tracking and discussion happens on a mailing list/with custom tooling Also IIRC Shepherd was a simple 1-level service manager like runit. Is that correct? I played around with it for a while and came to the conclusion that it couldn't represent a service graph.
- civodul 3y agoShepherd takes a service graph as input. The `herd graph` command gives a GraphViz representation of that graph: https://www.gnu.org/software/shepherd/manual/html_node/Jump-Start.html https://www.gnu.org/software/shepherd/manual/html_node/Jump-...
- deleted 3y ago[deleted]