17 ms·
GNU Guix 1.2.0
- mehrzad 6y agoNot completely related but I decided on my latest GNU/Linux distro install that I much prefer the macOS model with slow updates for the major stuff with optional use of Homebrew and other updating mechanisms for the add-ons. One of the things that I got tired of was having to run updates on Fedora, Ubuntu, etc. So I decided to install Debian Stable with the Nix package manager as a sort of Homebrew replacement. This way I don't have to worry about my distro breaking, while I can get new stuff that is atomic and easy to remove when I want. I am curious if any Guix users do something similar.
- zelphirkalt 6y agoI definitely do. It takes some reading the docs and perhaps asking people how to do it, but you can have some environment defining files a folder of any project and use GNU Guix to enter a reproducible environment. I cannot yet do that for all the things, where I would like to do it, because I often miss a package or get an error when trying to import it from other package repositories like PyPI and am not able to solve these without help from the mailing list. People on the mailing list are very helpful though. Sometimes a good way to do something on the command line is missing, but the stuff that is there has a great CLI interface, in my opinion. One of my favorites is the time machine.
- globular-toast 6y agoI like Gentoo for this reason. I can leave core elements and stuff I don't care about on "stable" while selectively choosing "unstable" for things I use every day. Unstable is pretty stable for the most part. The nice thing is the stable core is still rolling so no major updates.
- peterburkimsher 6y agoGentoo was too hard for me to install (command-line partitioning is just too risky) so I ended up using Redcore, which has a nice GUI installer, and is Gentoo-based.
- nsajko 6y ago> command-line partitioning is just too risky So partitioning a device is less risky with a GUI? That doesn't make sense. EDIT: I should be more constructive: I know that the command line scares some people, but that's just like computers in general scare most people, it's just something you have to get over with. Another "scary" thing is the choice that exists between multiple available partitioning tools, I know it took me some time before I decided that the good old fdisk was my choice, but really, it probably doesn't matter, any should be OK. You probably won't actually do it directly from the command line anyway, e.g. fdisk is dialog driven instead. Lastly, I doubt that it isn't possible to fire up Xorg from the Gentoo install media and then partition from a GUI tool, if that's what you want.
- carlhjerpe 6y agoI personally find it easier to see the gui layout of my disk before I press play. Gparted can queue and execute a lot of changes to get to your desired state. Very intuitive for people like myself who doesn't deal with partition layouts and filesystems on a daily basis.
- nsajko 6y agoDon't get me wrong, seeing the layout is great if you don't mind the requirement for a GUI, but the fdisk UI is actually pretty good, too. It also queues and executes a lot of changes to get to your desired state, and it can show all the sizes and offsets that define the partition layout. It's not actually a command line tool, but dialog-driven (you give it commands on-line, get built-in help, etc.).
- peterburkimsher 6y agoI did try to run startx from the Gentoo installer, but it isn't available. Command-line partitioning isn't the problem, per se, it's the lack of manual config options. Zenwalk (Slackware) has a command-line installer, and that detected my existing partitions correctly and let me install.
- thomastjeffery 6y ago
- raegis 6y agoI used Gentoo exclusively for 5+ years (around 2002-2007) and after the umpteenth update which broke printing, I switched to Debian stable, and will probably use it for the rest of my life. Being able to get stuff done without having to worry about random stuff breaking was a very positive life change. Back then most Gentoo ebuild authors updated versions of all dependencies of a package, as well as the package itself, which
- globular-toast 6y agoThings are so much better now. I used to use Arch Linux around that time while I was at university. During my coursework I was procrastinating and decided to upgrade my entire system. It broke. With only hours left until the deadline I chucked in one of those free Ubuntu CDs I have lying around and was back up and running within an hour. I stayed on Ubuntu for years after that. But now I've gone back to Gentoo and it's very impressive. Everything just works. I'm sure it's partly due to my extra experience but I really don't have a problem with stuff breaking. Things are so much better now.
- nextos 6y agoI have several machines running NixOS and one running Guix. In Nix you have several channels that push package updates. The stable one moves very slowly, and because Hydra tests packages, it's really rare to experience broken things. You can also mix them and e.g. install some packages from unstable, and keep others from stable. Additionally Nix and Guix provide easy total and partial rollbacks, so you should not be afraid of breaking anything.
- ywei3410 6y agoHave you preferred Nix or Guix (specifically in writing the configuration/managing the system)?
- nextos 6y agoThey are both quite different as its an internal DSL vs an external one. Just give them a try. A major difference at the minute might be package availability. Nix has more packages but some are broken, e.g. Julia. Guix has very clean and reproducible packages, and a slightly better CLI interface.
- the_duke 6y agoMight as well try out NixOS. I've been using it on all my personal devices for ~6 months and also for some bare metal sever deployments. A (mostly) immutable system configured with a single config file is an absolute killer feature. The ability to roll back to a previous config in the bootloader or the terminal is brilliant. And home-manager [1] provides the same experience for your user environment. I also looked into Guix, but the community and package repository seem much smaller. They also don't accept proprietary software in the official package repo. Which is a respectable ideological choice, but really reduces usability a lot compared to nixpkgs. [1] https://github.com/nix-community/home-manager https://github.com/nix-community/home-manager
- rudolph9 6y agoI’m on NixOS and had the same feeling when first debated which to use. If I was running some security sensitive app or scientific computing I would probably choose guix and they tend to be pretty rigid about reproducible building from source and signing changes to to the OS. But my day to day OS I use NixOS as I get tons of packages and basically all the same features with the trade-off of expecting some weird behavior on edge-cases and reproducibility (which I have yet to run into but know I will eventually)
- peterburkimsher 6y agoI tried to install NIX, but the graphical installer wouldn't boot. I'd have the option to choose it in GRUB, but it went to a command-line. Then when I tried the text-based install, it couldn't see my NVME disk.
- adkadskhj 6y agoWeird, i stumbled through NixOS, a dual boot grub setup, and backed by NVME with no issues and very little Linux information to start with. Currently on NixOS btw, been a great experience from it so far.
- peterburkimsher 6y agoMy SSD is an Intel 660P, if that helps debugging in any way. Installing using nixos-gnome-20.09.1889.58f9c4c7d3a-x86_64-linux.iso.
- haberman 6y agoI really agree with this in concept. It's frustrating to me that in practice, Homebrew wants to own /usr/local: https://docs.brew.sh/FAQ#why-does-homebrew-prefer-i-install-to-usrlocal https://docs.brew.sh/FAQ#why-does-homebrew-prefer-i-install-...
- kilburn 6y agoI know the "cool thing" these days is homebrew, but there's also MacPorts [1] which I would say it and aligns better with the "use a stable base + compile the latest things" approach. MacPorts does not use the base system to compile the latest things on top. Instead, it creates a "parallel system" where everything is installed from MacPorts (and hence you all dependencies are continuously updated) for the "latest stuff" you install through MacPorts, while not touching the system stuff at all. [1] https://www.macports.org/ https://www.macports.org/
- 1vuio0pswjnm7 6y agoWhat do you think of using pkgsrc on the MacIntosh? https://www.pkgsrc.org https://www.pkgsrc.org
- kilburn 6y agoI haven't tried it so I don't have an informed opinion. All I can say in is that MacPorts has served me well for over 10 years at this point, with remarkably few issues (even after updating to newer MacOS releases). A couple years ago I wanted to install restic, which had homebrew instructions but not a MacPorts package. I don't remember the details, but the installation through Homebrew failed. In the end, I got rid of Homebrew entirely and created a MacPorts package, which took me around 2 hours with no previous knowledge on MacPorts packaging. It was accepted upstream too :) Since then it just hasn't seemed necessary to try out other package managers. MacPorts fills that need for me and I prefer to spend my time elsewhere.
- davexunit 6y agoWhen a Guix system upgrade breaks something important, you can simply boot up the previous "generation" of the system and get back to work until the blocker bug you encountered has been fixed, at which point you can attempt the upgrade again.
- aijony 6y agoI'm running Guix on Void, but I think Guix on Debian (experimental) is better supported [1] and what I plan to switch to eventually. [1] https://lists.gnu.org/archive/html/guix-devel/2020-11/msg00254.html https://lists.gnu.org/archive/html/guix-devel/2020-11/msg002...
- uncletaco 6y agoWhere are the pain points using guix on void? Asking because I may be switching my desktop over to using guix on a foreign distro
- mbakke 6y agoGuix works exactly the same no matter which distro you run it on.
- _emacsomancer_ 6y agoI run Guix on Void. Guix doesn't care what distro you run it atop of.
- jangid 6y agoWhile reading this discussion, I was thinking exactly the same thing. Normally I use /testing/ distribution of Debian GNU/Linux. But with Guix, I can just install bare-minimum Debian /stable/ and work with Guix for the rest. This way we'll also get security updates. Debian is committed to providing security updates for the /stable/ distribution. Not sure about /testing/ and /sid/.
- dannyobrien 6y agoYep, Debian/Guix is my setup for my main laptop. I actually ended up using testing rather than stable for ... reasons but I think if I did it again, I’d stick with stable. Of course, I always think that.
- gypsyharlot 6y agoI was genuinely interested in Guix and the whole Guile ecosystem, until I realized that it is full of hateful and toxic politics. Political activists like Andy Wingo will attack people with master suppression techniques and horrible mind games to push his ideology. I would rather use free software where the technology is in focus and not some extreme liberal viewpoints.
- rstarast 6y agoCitation needed. What do you mean by "extreme liberal viewpoints"? The only thing I've witnessed is that the Guix maintainers took a clear stand in support of holding RMS accountable when that was ongoing a year back. As it stands, my guess would be that it's rather that you feel inhibited in expressing your own hateful ideology?
- gypsyharlot 6y agoNo, it wasn't Guix maintainers. It was one guy saying "A bunch of us have had enough", "we've just about had it" and basically pretending that the community was against RMS. And there wasn't anything hateful about what RMS said, neither was he expressing pro-pedo sentiments, which was implied by Wingo. I am upset that someone tried to ruin RMS' character with false rumors. Expressing my own "hateful ideology" is a little far fetched, given that I don't approve of trying to tarnish RMS' reputation for something he didn't do, and I don't see what's hateful about that. How would you like it if an important figure in the community falsely accused you of being a pedophile? This childish hateful propaganda doesn't belong on a programming language message board. Read "Jean Louis" response to the gross accusations against RMS if you haven't.
- Fice 6y agoWingo: https://lists.gnu.org/archive/html/guile-devel/2019-10/msg00005.html https://lists.gnu.org/archive/html/guile-devel/2019-10/msg00... Jean Louis: https://lists.gnu.org/archive/html/guile-devel/2019-10/msg00015.html https://lists.gnu.org/archive/html/guile-devel/2019-10/msg00...
- seqizz 6y agoI was complaining how weird the Nix language is, until I saw Scheme.
- rudolph9 6y agoScheme is a pretty old lisp dialect https://en.wikipedia.org/wiki/Scheme_%28programming_language%29 https://en.wikipedia.org/wiki/Scheme_%28programming_language... I give Guix folks a lot of credit for sticking with a pure language but after using Nix expressions for a bit favor how pragmatic it is for day to day stuff. Though I should note: I trust Guix more than nix. I use nix for convenience but really admire what Guix has done in terms of taking the concept of a functional package manager to be as pure as they can. The security stuff they’ve incorporated is very admirable and a compelling reason for me to switch over https://guix.gnu.org/blog/2020/securing-updates/ https://guix.gnu.org/blog/2020/securing-updates/
- deleted 6y ago[deleted]
- patrec 6y agoWhat would be less weird (and why)?
- SAI_Peregrinus 6y agoNot OP, but it's a declarative configuration system, so an existing declarative language like Prolog would seem to fit naturally. Declare the relations between packages, the constraints that must be satisfied, and let the compiler perform unification to get the resulting configuration.
- snicker7 6y agoScheme/lisp might be weird for some. But Guix packages are written in a highly declarative style. Very little control flow. It looks kind-of like JSON.
- davexunit 6y agoThe release song slaps. Love the beat.
- aijony 6y agoMmmh! https://guix.gnu.org/audio/ode-to-one-two-oh.ogg https://guix.gnu.org/audio/ode-to-one-two-oh.ogg
- andrewflnr 6y agoRelatedly, what is going on with that header image? I kind of love it, but it nevertheless leaves me confused.
- smartmic 6y agoGuix makes me feel good. Even in case there is package version conflict because I tried various version, I can stay calm and feel safe. Just run `guix upgrade` on the affected packages solves the problem well. An a rollback is also not far away if everything fails. Any package conflict on my old grown Debian system has made me sweat with fear after years of piled up apt packages intermixed with /usr/local installations.
- vmchale 6y agoNeat! Love seeing more takes on this (nix-like builds)
- peterburkimsher 6y agoI tried installing GUIX on my 2013 MacBook Air 11" on Sunday night. The installer insists on erasing the entire disk, not sharing with other partitions. I removed the SSD for safety, and plugged in a second USB stick. The installer took from 21:20 to 7:30 am the next day. It needed to be connected to wired Thunderbolt Ethernet, which in my case means in the laundry. Downloading packages took a long time (about 2 hours). "grafting" took longer. Finally it failed to set up the bootloader. No big deal, try GRUB or rEFIt, right? But they didn't detect it. There is an "EFI Boot" option in the startup menu (holding option). That just boots to a black screen. I'm sorry, but issues like this mean that I think GUIX is not desktop-ready for bare metal. It'll be relegated to a virtual machine (along with OpenIndiana, PureOS, Haiku, Hello, etc).
- jhoechtl 6y agoYou are aware that you are trying GUIX out on hardware which has been tightly locked away from being interoperable with anything besides MacOS, right?
- peterburkimsher 6y agoAre you aware that Apple hardware pre-2015 was much more open than it is today? I agree with your sentiment for modern Macs, and that's why I'm trying to find a suitable OS for switching. When there's a limited scope of what drivers are required, it should be easier, not harder, to support certain hardware. Being unable to read NVME drives (which have been around since 2011) is no longer acceptable for an OS in 2020.
- pinusc 6y agoAFAIK Guix stays very true to the GNU values of ONLY shipping free software, including drivers. A couple years back I had a similar issue where I couldn't get my WiFi card to work because I'd have to recompile the kernel while including nonfree libraries... which is pretty hard to do if you know nothing about Guix! Maybe I'll try it again in a while. Not sure if it's available for raspberry pi, but it would be great to try it there and eventually switch to it on my laptop (once JJ change WiFi card!)
- snicker7 6y agoI love Guix in theory, but I have a lot of issues with performance. Literally orders of magnitude slower other package managers. Downloading is slow, even if the total download size is small. Recently, it took two hours to upgrade Julia because, I guess, it wasn't available on the substitute server.
- rekado 6y agoWhen you think of Guix as a source distribution first and a binary distribution second this makes sense. The build farm is just another user that builds everything from source. If it didn't catch up with the builds because someone just changed a package definition then you might be requesting a binary that hasn't yet been built. Slow download appears to depend a lot on location to an extent that we suspect peering problems. The main build farm's head node is connected to the internet from a well-connected research campus with dual 10G. Multiple tests have concluded that the configuration from server-side software, to network hardware of the server, down to networking in the data centre is sane. Maybe we'll have to bite the bullet and (again) use a CDN to better serve users that inexplicably experience slow connections.
- maxeonyx 6y agoWhat about integrating (and encouraging users to opt into) peer-to-peer distribution? If I understand correctly, this would work for Guix and Nix. I'm not using Guix, but if I was I would be happy to do this. I have no data cap on my home internet, and my PC is usually on.
- rekado 6y agoThere was early work on using IPFS as a substitute distribution mechanism, but the API changed and nobody has picked up the existing work yet. But I agree that this would be a great feature and I hope someone will feel motivated to pick up and assemble the pieces.
- thom 6y agoWhat are the security implications of this?
- georgyo 6y agoI firmly believe that Nix (and/or Guix) are the future. I am going to use Nix as the keyword below, but Guix and Nix are so very similar that everything is also true for Guix. Snap, Flatpak, Docker, AppImage, etc are all very complex solutions that are actually quite painful to interact with. Nix on the other hand solves the problem extremely well. You can have different complex applications running side by side with very different dependencies trees and they will not cross paths. Every time I see a package being distributed as a Snap, I wonder why. These containered solutions are very complex, trying very hard to emulate FHS with mount namespaces, binding mounting tons of sockets around, and almost always end up mounting all of /home in the container. The don't provide much security, and quite difficult to deal with, and require a daemon. Nix on the other hand has zero containerization requirements. It simply works by ensuring the programs are looking in the right place for the libraries they need. It would be great if more vendors just shipped a Nix derivation (or store path) that was their application stack. It would end version incompatibilities for ever, in a way that isn't a burden for the user. Nix + bubblewrap add all the benefits of snap and flatpak as well. But again, there is no benefit to bubblewrap is if you are just going to blanket allow read-write everywhere anyway. At least with raw bubblewrap you can make these policies actually protect something. Similarly, Nix is easily installed on any existing system. So you can use nix packages on Debian, Ubuntu, Centos, Fedora, DSL, or any other linux distribution because it runs entirely out of /nix. I use nix packages on Archlinux at home, and Debian systems as work. Cross distro development works 100% of the time because Nix doesn't use anything from the distro. Nix (and Guix) are really what the Linux community should be moving towards IMHO. I personally prefer Nix's syntax, but the underlying technologies are so similar I consider them the same. Guix started as a fork of Nix, and one day I hope they decide to end up becoming compatible with each other again.
- rekado 6y ago> Guix started as a fork of Nix This is repeated often but it is an unfortunate misunderstanding. One self-contained component of Nix was used unaltered in Guix: the nix-daemon. Everything else but the daemon (and that's a lot) is a completely independent implementation of the same principles that were first demonstrated in Nix: functional package management. Why reuse the daemon? Because it could be done. The daemon takes very low level build instructions ("derivations") and arranges for them to be executed in an isolated environment. In Guix derivations are generated through compilation of higher level concepts that as such have no correspondence in Nix. The common ground is the format of the derivation, which has only been modified occasionally to better suit our differing needs.
- basicneo 6y agoGuix and NixOS are a generation ahead of other distributions. It's great to see Guix's focus on trust and reproducibility. If they can grow enough to be able to support LTS, they'll be a compelling choice for enterprise too.
- jancsika 6y agoArmchair package user litmus test: 1. Is there a LTS Firefox package in Guix? 2. Is there a LTS Chromium package in Guix? 3. Is there an escape hatch if I'd rather just download an Electron binary for my package dependency rather than properly package Electron?
- mbakke 6y ago> 1. Is there a LTS Firefox package in Guix? Yes, it's called IceCat and is a rebranded Firefox with privacy enhancements: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/gnuzilla.scm#n553 https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages... > 2. Is there a LTS Chromium package in Guix? There is no LTS distribution of Chromium anywhere. But the latest version is available, sans Google integration: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/chromium.scm#n305 https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages... (you can also install Chromium extensions with Guix) > 3. Is there an escape hatch if I'd rather just download an Electron binary for my package dependency rather than properly package Electron? Kind of. You can define an environment with the relevant dependencies on LD_LIBRARY_PATH (or use "patchelf"). But expect to experiment a bit to make it work.
- emptysongglass 6y agoAs a user of both Nix and Guix, Guix really needs to do a thousand papercuts campaign because there's so much low-hanging fruit here. The Nix shell script installer is a one-time that you can rerun without it reinstalling Nix (it will just skip if it detects an already existent Nix). Guix reinstalls (and take forever doing it). The Nix installer is much faster. You also need to make sure you import keys when installing Guix because security. Doing any package related thing will tell you about a failure to install locale. This is straight out of the box Guix if you've installed it on, say, Ubuntu. This is not a good out of the box experience. It blows. If you Google this error you are told to install glibc-utf 8-locales but on my Ubuntu base system this doesn't actually solve the error. If you the user can clamber over these two landmines well it's an awesome Emacs package repository. This is actually where Guix wins over its cousin and as an ardent Emacs user its fantastic to have all the most esoteric packages and weird builds of Emacs like emacs-pgtk-native-comp I source from a Guix user channel and install declaratively from a manifest.scm file. Guix should lean into this one major strength and put out an Emacs-centered heavily opinionated installer image that uses EXWM for its window manager.
- mbakke 6y ago> The Nix shell script installer is a one-time that you can rerun without it reinstalling Nix (it will just skip if it detects an already existent Nix). Guix reinstalls (and take forever doing it). Wait, what? The Guix installer script also stops if it detects an existing installation, and has done so since the initial commit: https://git.savannah.gnu.org/cgit/guix.git/tree/etc/guix-install.sh#n297 https://git.savannah.gnu.org/cgit/guix.git/tree/etc/guix-ins... > You also need to make sure you import keys when installing Guix because security. If you are complaining that the installer verifies the GPG signature of a file it downloaded from the internet, I don't know what to say. :-) > Doing any package related thing will tell you about a failure to install locale. This can happen when your installed locales are from a different glibc than what the guix-daemon was built with. Upgrading and restarting the daemon will solve it. That said, I think the daemon recently got smarter about it. > Guix should lean into this one major strength and put out an Emacs-centered heavily opinionated installer image that uses EXWM for its window manager. The system installer disk image does give you an option to create an EXWM system (as well as GNOME, Xfce, etc).