5 ms·
Questions for the GuixSD and NixOS users: 1) Are these kind of systems overkill for the desktop user? 2) How easy is it to customize/tweak these systems in th
by alekq 5y ago
Questions for the GuixSD and NixOS users:
1) Are these kind of systems overkill for the desktop user?
2) How easy is it to customize/tweak these systems in the manner that Gentoo does? So, building from source by tweaking the software options on build time?
- tadfisher 5y agoCheck out my Nix configuration repo; I manage a desktop, two laptops and a home server with it. The pkgs directory contains all my customized packages. https://github.com/tadfisher/flake https://github.com/tadfisher/flake
- mrslave 5y agoI haven't used Flakes yet. Any customization is done by giving the packages import an overlay. What am I missing?
- mrslave 5y agoWRT NixOS: 1. There might be slightly more convenience for the desktop user because installing applications in their user environment doesn't require root permission. You can set the system to a full Gnome with it's networking/wifi configuration if you like that sort of thing, but understandably it's less popular and minimalism is en vogue. 2. There is no global equivalent to Gentoo's USE flags, however most derivations follow conventions and expose comparable options with sensible defaults. These are largely easy to override. You usually lose the benefit of the large cache of binary builds so the culture of micromanaging all the options is not as prominent as in Gentoo. E.g. removing X11 support because you're not using it on a server might result in the need to locally build a lot of packages, some of them slow, and hence most don't bother with this level of "optimization." The single configuration file and rebuilding the whole system with one command (that actually runs quickly and is easily rolled back) is what caused me to finally leave Gentoo behind. I had way too much manual intervention with an almost vanilla Gentoo configuration when performing upgrades (e.g. newer profiles, but sometimes just a package update). I'm not sure if NixOS is resilient enough to allow such things as system-wide ABI changes (such as the last Gentoo profile bump) but I suspect it is, and it's mission is to provide a seamless user experience when rebuilding. Should a rebuild fail, it's not activated so you're not stuck with a partially working environment.
- civodul 5y agoI think many (most?) Guix System users are desktop users. Having transactional upgrades and rollbacks, downgrade prevention, and secure updates is great whether you're a desktop user, a developer, or a server admin. To tweak packages, Guix has "transformation options" that make a number of tweaks readily accessible from the command line: https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html https://guix.gnu.org/manual/en/html_node/Package-Transformat...
- orivej 5y agoGentoo (actually Funtoo) was the last distribution I used on my main laptop before switching to NixOS. (I have tried Guix, but not GuixSD, so won't talk about it.) > 1) Are these kind of systems overkill for the desktop user? There is more to learn to be free to do everything — for some this might be too much (even though it is easy to start and the learning is mostly gradual), for others this is fine (especially those viewing the obstacles as opportunities to learn rather than distractions), and many others can be satisfied with their systems before achieving such freedom. While efficient usage of NixOS requires more upfront involvement, once settled or learned it becomes the easiest to maintain, and brings the piece of mind I had with no other OS with its easy global configuration, nondestructive updates, and manageable malleability (adding and customizing packages, effortlessly offloading their build to your other machines with Nix, even without NixOS). > 2) How easy is it to customize/tweak these systems in the manner that Gentoo does? So, building from source by tweaking the software options on build time? Nixpkgs have close to optimal balance between the ability to use prebuilt packages and the ability to extend them, and it's more customizable (thanks to Nix and Nixpkgs designed to allow reaching into the old definition of a package, writing tweaks just for the parts you need, while keeping automatic updates!), although it's geared towards users that want most of their packages prebuilt (in particular it does not have cross-cutting USE-flags). You can either replace a package (and cause dependent ones to be rebuilt against it), or override under a new name (and install it alongside other packages that may depend upon and actually use the non-overridden one).
- xfer 5y agoSome software will require a lot of patching because they hardcode locations or has some non-deterministic build process. Other than that you will have to deal with a non-conventional language for which you may need to look at the manual when making changes depending on how much you use nix-shell. I use nixos on a laptop. You have to watch space usage here to clean old generations.