I find the concept of NixOS to be incredibly cool, and in terms of immutable operating systems it would in theory be one that I’m really interested in!
But the last time I tried it, I found that I was constantly fighting the system, and the documentation is all over the place and confusing. There’s things like “Oh hey use Flakes!” but then most of the documentation doesn’t really cover Flakes because it’s still considered experimental, yet it feels like the majority of the community uses it.
I also had software that would just randomly break, and when trying to track down the changes from Nixpkgs I couldn’t find anything that would prompt why it broke. Which… seems counterproductive to one of the strong points of Nix.
One example I ran into, is OpenRazer - the service is no longer being exposed and was reported 7 months ago. I did my best to try to track down the changes that broke it, but I suspect it’s possibly a lower level change outside of the OpenRazer package/module that caused it to break.
I get the impression that if I wanted to try to fix it, I’d have to take on the massive gauntlet of understanding how all of NixOS’ internals work, and while yes someday I’d love to have a better understanding, right now I’m more focused on just making sure the things I’d like (or even need in some cases, like software for my job) just works.
These comments really speak to me as someone who is comfortable in Arch but mildly interested in NixOS. The concept seems great, and it seems to work very smoothly when it works. Yet there are always these war stories where people have had to fight the system, to debug some misbehaving hack that is nonetheless required to smash a particular package into the NixOS mould. It is discouraging. The idea I get is that NixOS involves more time doing OS curation chores than does Arch, which already hits the limit of my willingness.
Flakes are another issue. The pre-flakes way seems to be de-facto deprecated, yet the new, flaky way is experimental. I don’t want to waste time learning a doomed paradigm, and I don’t want to depend on anything experimental.
For me, configuration files in git plus btrfs snapshots is just so straightforward. I want to see NixOS as a better way, but I can’t.
Pretty much, unfortunately. It sucks, because in order for Nix to accomplish its vision, things have to be like this - I don’t really see a way around it.
I am amazed by what the Nix[OS] community has accomplished and give high respect to them for it, but I can’t do it. If the documentation (and procedures, eg Flakes) were a bit more structured I’d probably be a bit more willing to put more time into trying to figure it out but… that’s just not the case currently.
I have similar feelings about immutable distros, it is a very intriguing concept but every single time I’ve tried one out, I run into some issue that requires hacks to get around it. If I did end up using one long-term, it’d probably be something from Universal Blue because it seems fairly easy to just modify the image. However, it’s still a massive paradigm shift of getting used to making changes at build-time (of the image), rather than making changes to your system at runtime.
For now, I just do pretty much the same thing you do, important dotfiles go into git, and btrfs snapshots for “Uh oh, something broke and I need things to work right now” moments (which is thankfully quite rare).
I wouldn’t worry too much about the package manager, just worry about whether the distro has a good package repository. If it has all the software you want to use, then use it. In my opinion, most package managers (dnf, apt, pacman, xbmp) are basically the same, and you would only notice a big difference if you ever tried to make your own package for your own software.
That said, a few package managers are very different from all the rest:
Crux OS “prt-get”: simple and stupid: just downloads and installs tar archives.
Gentoo “emerge”: builds all software from source code when you install it. This provides some guarantees that the source code was not tampered with by the distro maintainers, this is great if you need to review all of the source code that is running on your system, but terrible for most people who don’t want to spend so much computing power on compiling stuff every time you do a software update.
Nix and Guix: creates its own blockchain-like database of isolated package dependency chains on your system, allowing you to instantly roll-back to the previous set of installed packages if you ever install something that breaks your system. It also guarantees that the software can be checked bit-for-bit (using SHA hash) traced back to the exact version and dependencies of the source code that built it. Nix and Guix packages also live peacefully side-by-side with any other package manager since all Nix/Guix apps are completely self-contained within its own database. In a way, it is sort of like one big AppImage or Docker container, but you can just keep adding or removing stuff to it as often as you want.
Silverblue, SteamOS, VanillaOS, BlendOS, CarbonOS: distributes “immutable images,” so it is impossible modify the operating system at all. Updates will ship an entirely new operating system with all packages built-in. However you are allowed to install software into your home directory, and you can install FlatPacks and AppImages. This provides a great deal of security in exchange for a tiny bit of inconvenience.
My personal preference: I use ordinary Debian or Ubuntu to install the critical software that needs to be stable and reliable, and I use Guix OS on the side to install the bleeding-edge things that might break a lot.
I couldn’t disagree more! Package managers are actually the only thing which differentiates distributions by a large margin. Syntax should be intuitive, download/updates fast and reliable. Also when watching git repositories for new software alternatives, you e.g. see often packages for good package managers, whereas you need to go some extra mile for “stable” package managers.
I wouldn’t worry too much about the package manager, just worry about whether the distro has a good package repository.
download/updates fast and reliable. Also when watching git repositories for new software alternatives, you e.g. see often packages for good package managers, whereas you need to go some extra mile for “stable” package managers.
But I would say these are not features of the package manager software, rather they are features of the package repository, that is, the online service that provides the packages. It doesn’t matter if you use Apt, DNF, Pacman, if the package repo is slow, fully of packages that haven’t been built right, the package manager software won’t do much to make it better.
But like I said, a few package manager are really unique, like Gentoo Emerge, Crux Prt-Get, and Nix and Guix.
Also, bit part of Portage (Gentoo “emerge”) is being able to ‘flag out’ parts of the package out (or in) to the compilation.
Let’s say you want to not have telemetry in your packages. So you set ‘-telemetry’ globally, and each package that has known telemetry parts will not compile locally - so it can not be turned on (unless it’s hidden really well).
Or you want to use pulseaudio? You can flag it globally, or for specific packages. That way you can influence software you install without knowing much about anything build-related - the work is done by the repository maintainers.
They won’t be able to pry Gentoo from my cold dead hands. Arch, Nix/Guix can suck it, all my money goes to the Gentoo
Original price doesn’t matter, you need to compare it against current new offerings. A drive like that, I’d buy for 8-10€/TB at max. because current new HDD pricing is 15€/TB at the low end.
What you also need is SMART output. Watch out for high uncorrectable errors, writes and whatever. I’d never buy a drive without having seen its SMART data.
I’ve been running a 6700xt for the last year and a half and it’s been great! Plays everything I want at high/ultra 1080p, anywhere from 160-240FPS depending on the game and settings.
I record gameplay no problem too with OBS. I’m on Nobara Linux, a gaming-focused Fedora Distro, haven’t had a single issue so far with it.
I just signed up at open.audio . This is pretty lackluster for the moment but has tremendous potential. Thank you so much for letting me know of it! :)
Basically competent support for hardware for laptops newer than 2014. Proper thunderbolt, displaylink, trackpad, fingerprint reader, facial rec support.
And it needs even less memory than Electron, even if it runs as an own instance with a different profile! I replaced Discord with it a year ago and it’s much better in literally every way. I just wish there would be a FF alternative for Electron.
linux
Top
This magazine is from a federated server and may be incomplete. Browse more on the original instance.