I've had good fun learning to program with Guix lately. It's easy to start packaging software and get contributions into a real project, But it's also a large system, with complex internals that I'm gradually learning more about, like G-Expressions[1]. I'm also studing SICP on the side, so it's nice that they use essentially the same language.
I have high hopes for Guix. I conjecture that GuixSD can become the distro-makers goto basis for creating new systems. Other distros have simpler sh-like languages for building packages, which creates a system which is very much a house of cards. Every time I look at debian package definitions for help, I come out with one extra grey hair.
I think Guix can build a much taller house of cards than other packaging systems. For example, suppose you want to build a Audio focused distro, and you'd like a PREEMPT_RT patched kernel, I haven't bothered making this myself but it basically just requires `inherit'-ing the linux-libre package definition, and then adding the PREEMPT_RT patch to the list of patches to be applied. Whenever linux-libre is updated, your linux-libre-lts will automatically include those changes too and be updated. Naturally, incompatible updates can happen that break things, but that is unavoidable.
Then, you would create in your git repo all the package definitions and customisations needed, and then finally a file containing the system definition that is the actual distro. Other GuixSD users can try out your distro by running sh $(guix system vm my-super-distro.scm --fallback) to boot up a virtual machine running your system. Or guix system reconfigure my-super-distro.scm will install it on the system in a non destructive way than can be rolled back or reconfigured back to the previous system definition.
What's else? Scientific Guix? Educational Guix? One can share git repos including .scm file that can easily be launched to show of their riced desktop without borking other peoples systems? I admit I haven't looked at how debian based distros are made, but I imagine it's not so simple to convert one dpkg based distro into another one and then back again without any destructive changes.
Any experiences with using GuixSD as a main distribution for a standard laptop working environment? I have been using Debian Sid for more than a decade but the idea of having a system fully configured via reproducible pure Scheme functions is tempting for sure...
I just installed GuixSD 0.12 last week on a Dell 13 7000. Went mostly smoothly (had to use Grub BIOS instead of UEFI, that's been fixed in 0.13) after I replaced the Intel WiFi card with an Atheros based one.
My needs are simple: emacs, Clojure (with Icedtea), Icecat and StumpWM. Plus all the guile goodness!
Just realized I'm living in a system with four Lisps front and center (guile, Common Lisp, elisp, and Clojure)
I have been using GuixSD on my Thinkpad X220 for about 2 years now and it is has been good overall. I have fairly simple needs: GNOME 3, Emacs, Firefox (called IceCat in GuixSD). The full system rollback feature has been very handy at times when I do something terrible to my OS configuration file and just want to move on to other things.
I tried to use it on top of my Ubuntu install to manage dependencies, and the very first thing I wanted to do didn't work. I wanted to set up Java so I could run Clojure, and the version of Java they build can't make any https requests. There was also a subtext of "you should just build everything in Guix; don't use leiningen or maven". It was pretty disappointing. I hope they can get things to work better; it would be fantastic to have a declaration of all the things I want to install on my computer.
I have been using GuixSD on a variety of systems for a couple of years:
* my x86_64 laptop (X200S with libreboot)
* two i686 laptops (a T60 and a netbook "server")
* an x86_64 audio workstation for music recording
* virtual servers at work
It's really convenient to have the system configuration declared in a Scheme file under version control. Rolling back to older variants in case of upgrade failures has also been very useful.
What is the current position of guix Vs mix? Is one clearly more popular? Is one "winning" or is this more of a Debian Vs redhat, where both can continue to exist?
Disclaimer: I have been working on Guix since 2014 and use it in production.
Guix and Nix are both implementations of the functional package management idea. Nix has been around for quite a few more years than Guix.
In Guix package expressions are first-class and the DSL is embedded in Guile, a general purpose language, so packaging has a very different feel to it. It also allows for fun tools like "guix graph".
Guix is used in scientific environments (e.g. where I work); I don't know if there are deployments of Nix in HPC environments. I do think that there are more bioinformatics tools packaged for Guix.
Another difference is in how the two projects approach certain problems, such as bootstrapping from binaries. (Guix just got a new Java bootstrap from C.)
There is no rivalry between these projects and members of both projects cooperate in the reproducible builds efforts.
Congrats on the release. I use GNU Guix ontop of Fedora to use some extra packages as well as commands like `guix environment` to set up a dev environment to work on projects.
Guix is a functional package manager, Flatpak is not. Flatpak is based on the idea of runtimes (a collection of libraries and toolchains). There is no dependency bundling with Guix and there are no "runtimes" against which binaries are deployed.
Guix provides the tools for bit-reproducible builds, which is why it's used in some HPC environments (including the institute where I work).
Im gunna give guixsd a go (i run Ubuntu now). I do almost everything in emacs, and I have all my configs/elsip (and plenty of scripts and other stuff) in a big git repo. Setting up a new box is as simple as installing emacs and checking out my repo. I look forward to rolling package installs and init scripts etc into my repo (its init system is scheme based, no systemd).
Funny thing about guixsd, intel wifi chips wont work out of the box. Even if you provide the firmware, the kernel wont load blobs. Im sure you could install a new kernel... But it just feels dishonest. I bought a $10 usb atheros card.
[+] [-] brendyn|8 years ago|reply
I have high hopes for Guix. I conjecture that GuixSD can become the distro-makers goto basis for creating new systems. Other distros have simpler sh-like languages for building packages, which creates a system which is very much a house of cards. Every time I look at debian package definitions for help, I come out with one extra grey hair. I think Guix can build a much taller house of cards than other packaging systems. For example, suppose you want to build a Audio focused distro, and you'd like a PREEMPT_RT patched kernel, I haven't bothered making this myself but it basically just requires `inherit'-ing the linux-libre package definition, and then adding the PREEMPT_RT patch to the list of patches to be applied. Whenever linux-libre is updated, your linux-libre-lts will automatically include those changes too and be updated. Naturally, incompatible updates can happen that break things, but that is unavoidable. Then, you would create in your git repo all the package definitions and customisations needed, and then finally a file containing the system definition that is the actual distro. Other GuixSD users can try out your distro by running sh $(guix system vm my-super-distro.scm --fallback) to boot up a virtual machine running your system. Or guix system reconfigure my-super-distro.scm will install it on the system in a non destructive way than can be rolled back or reconfigured back to the previous system definition. What's else? Scientific Guix? Educational Guix? One can share git repos including .scm file that can easily be launched to show of their riced desktop without borking other peoples systems? I admit I haven't looked at how debian based distros are made, but I imagine it's not so simple to convert one dpkg based distro into another one and then back again without any destructive changes.
[1] https://www.gnu.org/software/guix/manual/html_node/G_002dExp...
[+] [-] arximboldi|8 years ago|reply
[+] [-] mtm|8 years ago|reply
My needs are simple: emacs, Clojure (with Icedtea), Icecat and StumpWM. Plus all the guile goodness!
Just realized I'm living in a system with four Lisps front and center (guile, Common Lisp, elisp, and Clojure)
[+] [-] davexunit|8 years ago|reply
[+] [-] zck|8 years ago|reply
[+] [-] rekado|8 years ago|reply
* my x86_64 laptop (X200S with libreboot) * two i686 laptops (a T60 and a netbook "server") * an x86_64 audio workstation for music recording * virtual servers at work
It's really convenient to have the system configuration declared in a Scheme file under version control. Rolling back to older variants in case of upgrade failures has also been very useful.
[+] [-] CJefferson|8 years ago|reply
[+] [-] rekado|8 years ago|reply
Guix and Nix are both implementations of the functional package management idea. Nix has been around for quite a few more years than Guix.
In Guix package expressions are first-class and the DSL is embedded in Guile, a general purpose language, so packaging has a very different feel to it. It also allows for fun tools like "guix graph".
Guix is used in scientific environments (e.g. where I work); I don't know if there are deployments of Nix in HPC environments. I do think that there are more bioinformatics tools packaged for Guix.
Another difference is in how the two projects approach certain problems, such as bootstrapping from binaries. (Guix just got a new Java bootstrap from C.)
There is no rivalry between these projects and members of both projects cooperate in the reproducible builds efforts.
[+] [-] logicchains|8 years ago|reply
[+] [-] orangeshark|8 years ago|reply
[+] [-] nerdponx|8 years ago|reply
[+] [-] pjmlp|8 years ago|reply
[+] [-] curiousreader|8 years ago|reply
[+] [-] rekado|8 years ago|reply
Guix provides the tools for bit-reproducible builds, which is why it's used in some HPC environments (including the institute where I work).
[+] [-] wcummings|8 years ago|reply
Funny thing about guixsd, intel wifi chips wont work out of the box. Even if you provide the firmware, the kernel wont load blobs. Im sure you could install a new kernel... But it just feels dishonest. I bought a $10 usb atheros card.