top | item 44098842

(no title)

urlwolf | 9 months ago

I moved to nix around Nov last year and couldn't be happier, the motto 'nix fixes that' is true. First time I can say linux is trouble free. Upgrades are painless. Dev environments, reproducible. Largest repository of packages in the linux world. Next to zero time wasted configuring things. Foundation LLMs now know enough nix to get you out of trouble most of the time. It's perfect as a linux experience.

discuss

order

TeeMassive|9 months ago

Until your use case hasn't been deciphered by a Nix scribe and then you have to fight the magic.

johnisgood|9 months ago

Which makes "next to zero time wasted configuring things" false, very much so. You will have to write your own derivation(s) using Nix[1].

In any case, from the article, what does not apply to Guix, too? I am leaning towards Guix because of its language (Scheme, i.e. Lisp-y), but I wonder about the differences between the two, today (besides userbase and hype).

[1] https://nix.dev/tutorials/nix-language.html

bigyabai|9 months ago

I guess relentlessly dylibbed software like AppImage is the elephant in the room. Nix struggles to handle those types of programs, but they tend to work fine in Flatpak or with a special tool (eg. appimage-run or steam-run).

sepositus|9 months ago

Welcome to the honeymoon phase. Mine lasted about a year. Eventually you will have to leave the comfortable area of "those who have done it before" and engage with some long, unwieldy, mostly undecipherable stack trace.

When I asked a long-time Nix vet why he thinks people leave, he provided the most insightful answer I've seen yet: they just don't try hard enough.

nextos|9 months ago

I think Nix is getting an unfair reputation for being too hard. Simple things are IMHO simpler in Nix than in any other distribution, and what one needs to know to accomplish them is tiny. It has basically reduced my sysadmin maintenance tasks to zero. In case of regressions, Nix makes it trivially easy to go back in time 2 or 3 years, cherrypick some packages and install them, or change your entire desktop environment, and then go back to the previous state with no effort.

Nix is hard if you need to build something difficult to package or something that has very unusual or dirty build processes. If you need to that regularly, Nix is not worth the effort unless you are an organization that values reproducibility and is prepared to pay for its cost upfront. If these particularly messy usecases are something that you don't encounter so frequently, you can always use an escape hatch to be able to make your install impure. For instance, distrobox is quite convenient to run e.g. an Arch or Ubuntu container. In my case, this has been helpful to run Julia, whose Nix packages are quite brittle.

atrus|9 months ago

Why is it inevitable that you have to leave the comfortable area of "those who have done it before" though?

Most of the benefit of nix for me is maintaining a configuration for a couple computers in a way that's easy to backup, upgrade, and recover with.

packetlost|9 months ago

Been there. Powered through it. It gets easier when you actually read the Nix manual.

exe34|9 months ago

> Welcome to the honeymoon phase. Mine lasted about a year

Mine has been going on since 2016, what am I doing wrong?

zachlatta|9 months ago

Can you link your dotfiles? I’ve been having trouble figuring out a good way to structure mine

sshine|9 months ago

Yes, that’s easy.

Here’s a very small example:

https://github.com/sshine/nix/blob/main/shared/home-manager....

My servers don’t have that many dotfiles because most server software can be configured in /etc (zsh, vim), while my work computers have a lot of dotfiles symlinked into ~/.config/ via Nix, e.g. VSCodium, ghostty, …

Most people prefer to Nix up their dotfiles, which provides some advantages (e.g. universal styling via Stylix), but the main drawback that I’m not buying is: I can’t share my app-specific config with non-Nix users.

But if you’re looking for a cheaper (in terms of complexity) dotfiles manager: https://github.com/yarlson/lnk