5 ms·
GNU Guix – The Emacs of Distros [video]
- JasonFruit 12y agoIf it were the Emacs of distros, this wouldn't be a video. Give me text that I can read. (And get off my lawn.)
- dmix 12y agoHere you go: https://www.gnu.org/software/guix/manual/guix.html#Introduction https://www.gnu.org/software/guix/manual/guix.html#Introduct...
- theophrastus 12y agoThis useful reference says "GNU Guix1 is a functional package management tool for the GNU system", so it's not a "Distro" as the title here declares? but rather, it's an aptitude replacement via guile? It's always nice to get from protracted video, and odd headline, to: "ok, but what is it? what's its function?"
- pseudonom- 12y agoFrom the linked page: > Last but not least, Guix is used to build a distribution of the GNU system, with many GNU and non-GNU free software packages. The Guix System Distribution, or GNU GSD, takes advantage of the core properties of Guix at the system level. With GNU GSD, users declare all aspects of the operating system configuration, and Guix takes care of instantiating that configuration in a reproducible, stateless fashion. See GNU Distribution[0]. [0]: https://www.gnu.org/software/guix/manual/guix.html#GNU-Distribution https://www.gnu.org/software/guix/manual/guix.html#GNU-Distr...
- S4M 12y agoThe page of the project is there: https://www.gnu.org/software/guix/ https://www.gnu.org/software/guix/
- zyla666 12y agoLooks like Nix rewritten in Guile. We need more fragmentation!
- vertex-four 12y agoSpecifically, it uses Nix as the underlying system, but implements a new syntax and maintains a separate package tree written in this new syntax. I'm not entirely certain why.
- 59nadir 12y agoIt's told very clearly on both the project's website and in the linked video that they consider the Scheme language to provide a more hackable interface for package specification and management. It's also demonstrated that it all integrates very nicely into Emacs. On top of that it's also stated in the comments here, by a Guix developer, that while having a DSL for package specification is nice, they think having a whole general purpose language for it is better.
- kragniz 12y agoIt's not rewritten, but built on top of.
- davexunit 12y agoIt's really not fragmentation. Each project serves a different set of users. They share the low-level concepts and technology, but differ quite a lot in methodology and higher-level details.
- olefoo 12y agoThis is like complaining about too much biodiversity. Accept that computing is a vast and complex topic, and that there are far too many ways of doing even basic things than you will be able to learn completely. This does mean giving up the idea that you will be the master of the topic with all of the answers. It also means that you need to practice humility in the face of different customs. What can you learn from this strange distro? What does it do better than the tools you have? Remember that your way is not the only way, and that it is statistically unlikely to be the best way. No matter how clever you are.
- pseudonom- 12y agoHow does Guix compare to NixOS? Now that both have been around a little while, what are the relative merits of Guile and the Nix expression language, in practice? How big is each community? The Guix package list is much smaller than the NixOS list?
- agumonkey 12y agoIIRC, Guix uses dmd as 'init' while NixOS uses systemd, which is full feature (for better or worse), documented and communiti-fied. dmd felt cryptic to use even after a little RTFM session. People on #guix are happy to review our patches though ;)
- rekado 12y agoGuix is not as old as Nix. Guix reuses parts of Nix but replaces the various languages in use for Nix packages and tools with Guile Scheme, both in the "frontend" as well as the "backend". Packages are just regular Guile modules, so the whole thing can readily be used as a library as demonstrated by Guix web, a browser interface.
- davexunit 12y agoI'm a Guix core developer, so my answers below will of course be biased towards Guix. >what are the relative merits of Guile and the Nix expression language, in practice? Nix is a DSL, whereas Guile is a general-purpose programming language. In practice, I find it better to use a general-purpose language, because you have access to all of the features of that language and its libraries for free. >How big is each community? I don't have any stats, but the Nix community is definitely bigger. Both communities are very active. The guix-devel mailing list and the #guix IRC channel are busy places. https://lists.gnu.org/archive/html/guix-devel/2015-02/threads.html https://lists.gnu.org/archive/html/guix-devel/2015-02/thread... >The Guix package list is much smaller than the NixOS list? Yes. The Guix package list is rapidly growing, though. Patches for new packages come in every day. Our last release had 164 new packages. Hope this helps!
- Sanddancer 12y agoUnfortunately, guix seems to fall into the problem so many source distribution systems fall into. Looking through the documentation, they make it entirely too difficult to customize compilation options. For example, FreeBSD's packaging system has make.conf, which allows one to set environment flags for the package build system, its ports tree lets you make custom builds of software for things like additional library support, and generally supports options that let you make your systems your own. Guix, while it claims to support repeatable builds, keeps you in the same restrictive build process as other package managers. It's hard to configure how your packages are built, hard to maintain your custom options between updates, and from the scant documentation, and hard to maintain a server for private packages. Add in its poor capabilities as a package manager, such as the bizarre requirement to upgrade the distribution to upgrade your package list, and you just have a poor mess of an operating system.
- davexunit 12y agoSeems to me that you've written some harsh things about a project that you don't understand. I will humor you: >Guix, while it claims to support repeatable builds, keeps you in the same restrictive build process as other package managers. This sentence makes no sense to me. Do you know what "reproducible builds" means in this context? See: https://wiki.debian.org/ReproducibleBuilds/About https://wiki.debian.org/ReproducibleBuilds/About >It's hard to configure how your packages are built In Guix, packages are Scheme objects, giving you maximum flexibility. You can easily customize configure/make flags, along with many other things, to make custom package builds. It's also easy to maintain your own separate package recipes. Guix makes packaging easy. That said, there are folks that are interested in a global configuration system, so maybe we'll see that some day. Guix is alpha software, it doesn't have every bell and whistle that you might like. >and hard to maintain a server for private packages First of all, you don't need a server for any packages. There is no single point of trust in Guix. You can build every single package on your own computer. Now, you could run your own Hydra instance like https://hydra.gnu.org https://hydra.gnu.org, and soon you'll be able to run 'guix publish' from any guix machine to spawn a server that exposes a Hydra-compatible web service for serving binaries. >Add in its poor capabilities as a package manager Transactional upgrades, rollbacks, and per-user package installation are poor capabilities? >the bizarre requirement to upgrade the distribution to upgrade your package list The package recipes ship with Guix, so upgrading Guix via 'guix pull' gets you the new package recipes, too. This does not upgrade the system, only the version of Guix for the user who ran 'guix pull'. The "package list" isn't a package list, it's a collection of Scheme modules.
- SSLy 12y agoI've drank the systemd kool-aid. I'd consider Guix, but I want systemd (if only just for nspawn).
- josteink 12y agoHave some dmd. Which if we can trust the FSF to deliver as usual will be to systemd like Hurd is to Linux. Really though. Haven't tried anything with dmd, but it cannot possibly be worse than SysV init.
- davexunit 12y agoSystemd just doesn't integrate well into our system. The big advantage of using dmd is that it is also written in Scheme, giving us access to all of the features and libraries that Guile has. Our initrd is also written in Scheme, giving us the same advantages. There is a GSoC proposal out there to add support for some of systemd's file formats to dmd, for interoperability (and being able to run GNOME, notably). If any student reads this and wants to hack on an init system this summer, subscribe to our mailing list or hop on #guix on freenode and let us know.
- digi_owl 12y ago>and being able to run GNOME, notably Should make people stand up and pay attention...
- digi_owl 12y ago>if only just for nspawn Should give pause for thought, but i guess i am expecting too much...
- SSLy 12y agoErm, well. Could you explain? I feel like I am missing some idiom here.
- digi_owl 12y agoHow much do init and nspawn have in common? People keep comparing systemd with sysv, as if they are both "just" inits. But one has grown way beyond being considered just as a init. To me at least it seems more and more that replacing init has become a sour pill people accept for getting some sugary candy elsewhere within the systemd sphere of influence.