this post was submitted on 28 Jul 2023
14 points (100.0% liked)

Linux

8126 readers
6 users here now

Welcome to c/linux!

Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!

Rules:

  1. Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.

  2. Be respectful: Treat fellow community members with respect and courtesy.

  3. Quality over quantity: Share informative and thought-provoking content.

  4. No spam or self-promotion: Avoid excessive self-promotion or spamming.

  5. No NSFW adult content

  6. Follow general lemmy guidelines.

founded 1 year ago
MODERATORS
 

I've been recently getting into NixOS, and I really like the concept of the store, reproducible builds, and declarative configuration. It keeps things organized and clean. But there are certain aspects of its implementation that are kind of rough:

  • It feels artificially complicated. Too many commands that do very small changes, unfamiliar configuration files with new, very specific and confusing syntax. Combining all commands into a central, consistent command (like git does) would help tremendously. I am aware of the nix command, but 1. it doesn't do everything, and 2. it's so new that every single documentation tells you to use nix-env or other specific commands. Why not nix rebuild switch? It feels like they tried to separate Nix from NixOS when they could really be the same thing.

  • Special treat to special packages. Configuring the boot loader, networks, timezone, kernel modules in /etc/nixos/configuration.nix makes sense. But this also configures x11, printing services, OpenSSH, pulseaudio. These programs have their own configuration files, that are governed by their own communities.

  • What am I supposed to put into /etc/nixos/configuration.nix? What is the point of reproducible builds if I put every single package I use in environment.systemPackages, which means it has to download gigabytes of data?

  • The error messages are not great. This is specially bad when a lot of the syntax feels made up.

The learning curve for this is absolutely huge, so I was wondering if it was worth spending a month learning all this, when it only applies to Nix/NixOS and I might not need all the complexity that comes with it.

I would love a simpler Nix.

top 8 comments
sorted by: hot top controversial new old
[–] M4775@lemmy.world 4 points 1 year ago

I would love a simpler Nix.

You've summed up my whole entire experience with NixOS. I too would love a simpler Nix, and couldn't quite commit to the time to learn everything. As a compromise I've been content to continue with nixpkgs and nix-env on Pop!_OS.

Having said, I've noticed a LOT of new nix flakes being added to System76's new Rust based COSMIC desktop environment's packages. And I'm hearing talk of immutability. Maybe we'll get our wish.

[–] linuxisfun@lemmy.world 1 points 1 year ago* (last edited 1 year ago)

Well, you basically summarised why I decided against spending any amount of time with NixOS. For me it is just too niche, too different and I can't see any benefits of choosing NixOS over more common and established distributions.

Instead I went to Fedora Silverblue and Flatpak and decided to learn their quirks. I am actually quite happy with Silverblue now and some of my knowledge (Flatpak) can be applied to other distributions as well. On the server I am in the process of moving from Ubuntu to Debian + containers due to Ubuntu no longer meeting my needs (inflexible disk encryption in the installer, Canonical's behaviour, future plans with package management, etc.).

Why did you choose to dive into NixOS in the first place?

Btw.: I don't want to discourage anyone from choosing NixOS or any other Linux distribution. I am sure they are perfect for people with different needs than mine!

[–] jim_stark@programming.dev 1 points 1 year ago (1 children)

You caught NixOS when it is "transitioning". It WILL get simple in the future. And of course there is no ETA.

I didn't but did you try GNU Guix? It's supposed to be much more elegant.

[–] francorbacho@lemmy.world 1 points 1 year ago (1 children)

Sorry, but I don't believe it will get simple. And you can't expect people to believe it is "transitioning" when talking about a 20 year old project. I would love to, but I don't think it's realistic.

I did look into GNU Guix but I discarded it because it looked like it had the same problems, and IIRC did not have build cache.

[–] jim_stark@programming.dev 2 points 1 year ago* (last edited 1 year ago) (1 children)

Nix is not transitioning for the last 20 years. The community recently had a lot of discussion lately and starting towards a better path. It's moving at such a pace that even official wikis maybe be out of date.

Of course I cannot say if this change will fit your particular needs. As someone who tries new things but not always gets success I understand your frustration.

[–] francorbacho@lemmy.world 1 points 1 year ago (1 children)

Thanks for the info. Where can I follow/read this discussion?

[–] jim_stark@programming.dev 2 points 1 year ago* (last edited 1 year ago)

There is no single place but:

A simpler way would be to keep an eye on the "Developer Category" in the forum.

[–] martinho@lemmy.world 0 points 1 year ago

fockin panza