I use Fedora 38, it’s stable, things just work, and the software is up-to-date.
pacman/yay
Also, Arch wiki.
All else is aesthetics.
Ever tried paru? Did the jump a while ago and it is slightly better, the best kind of better.
Thanks for reminding me of paru! I’ve checked and I have it installed already. But I confess that I’m so used to yay that I completely forgot about paru.
Do you have any paru tutorial you recommend?
I’ve been messing with paru to gauge its functionality against yay.
So far I’m unimpressed. The cli display is somewhat tidier/neat. I like that. But when it comes to actually installing something, it’s less than stellar.
For instance, if I want to skip any confirmation, I can use the undocumented flag --noconfirm. But that only works if I’m passing the flag to install, -S. If, say, I’m searching for a package, simply typing
paru <package>
, then the interactive menu no longer works. It simply exits with the message ‘nothing to do’.yay, on the other hand, works flawlessly with the --noconfirm flag.
I noticed that paru has some upgrading/updating features that are nice. I might use it once in a while to upgrade/update the system. But that’s pretty much it for now.
OpenSUSE Tumbleweed. I like it for being a rolling release with quality control. On the one hand I don’t like its restrictive defaults but on the other hand I know enough to work with them and that’s given me a leaner system.
I like it because I can appreciate a good lizard.
Debian Bookworm. On my laptop and all my servers.
I’m a seasoned professional Linux sysadmin, so getting a distro installed has never been a problem for me (thanks to my first proper distro being Gentoo).
In the end, it’s the stability and “knowing what to expect”, that always makes me come back to Debian.
I don’t know how you deal with non rolling releases on your machines you actually use for work. By the end of the lifecycle all the tools are ancient
ChojinDSL It depends on your use case. In my case I mostly manage bare metal servers running certain services or docker.
For servers I don’t want rolling releases. That just means stuff is going to break on a regular basis. In my opinion, Arch Linux is the worst offender here. I don’t know if it’s gotten better since last I used it. But with Arch Linux the problem was, that you had to keep up with the updates. If you forgot to update some machine in a while, it could happen that you missed some update that changed some critical things, and everything else already moved on, and the only way to fix it was to hunt down the intermediate package version and try to install that manually, or just wipe and reinstall.
As far as “ancient” tools is concerned, it depends on what those tools are. Bugfix and security patches is what I’m most interested in on a server. Just because there is a newer version of software out there with some new features, doesn’t mean that I need those features, or that they’re relevant.
For the cases where I need something newer, there’s docker, flatpak and backports repos, (if not third party repos for certain tools).
For servers I don’t want rolling releases
Yeah I wasn’t talking about servers.
Relatively fast updates, AUR, PKGBUILD, Downgrade, the Wiki, the community, not controlled by some corporate entity, no telemetry, and last but not least the logo ;)
I like that the NixOS packaging system feels like it’s build for Free Software, making source code and Git repositories a first class citizen. You can simply drop a flake.nix into your repository and turn it into a Nix package within a couple of minutes, that’s quite a bit different than the utter headache it is to package something for Debian. Nix packages being free of naming conflicts also makes it very easy to mix and match whatever versions you need, something that’s basically impossible on most other distros unless you resort to containers or virtual machines. NixOS having the largest package collection of any distro is a plus too.
How different (if at all) does Nixos feel as a daily driver, if at all? Is it only about getting used to the system, or does it require to do everything the Nixos way?
Also how does user-level configuration work? Does the upgrade system just ignore your $HOME in terms of version control?
All OS configuration (i.e. your installed packages, services, /etc content) happens in NixOS via a single configuration file in
/etc/nixos/configuration.nix
. When you donixos-rebuild switch
that file gets read and the OS gets rebuild, which in practice means some downloading and changing some symlinks, so it’s reasonably fast, kind of like GNUstow
. The partition table isn’t touched here, that has to be setup manually on the first install like on every other distribution. NixOS will also not rollback the file system if you decide to boot into an older version, everything is done by symlinks and environment variables, so you don’t have to worry about your $HOME disappearing or anything like that.For daily use that means that you basically never edit anything manually in
/etc
ever again, except for that one NixOS config file. You also can’t since everything will be symlinks into a read-only/nix/store
. For permanent package installation you also need to edit the file and rebuild, you can’t do imperative stuff likeapt install ...
. However with NixOS you don’t need to permanently install anything if you just want to try it, you can just donix run nixpkgs
ornix shell ...
and it will run it without installing it (everything goes to the/nix/store/
cache and is garbage collected when no longer needed).This can become a problem when you are dealing with third party packages that come as self extracting installer files that want to install themselves in
/usr
or depend on programs being available as/usr/bin/python
or whatever, since on NixOS that whole hierachy is empty ( except for/usr/bin/env
and/bin/sh
). NixOS hasbuildFHSUserEnv
to work around that and provide apps with a normal looking Linux filesystem, but that requires a bit more effort than the usualcurl http://.../install.sh | sh
hack.By default
$HOME
isn’t touched at all and will behave largely like on any other distribution. You can however install packages as user vianix profile install
(which behave much the same asapt
would, but is local to your $HOME). The other popular alternative is home-manager, this provides basically the same what/etc/nixos/configuration.nix
does, but for your $HOME, so you can start systemd services, generate your bash profile with it or install apps locally in your $HOME. Home-manager has to be enabled manually and is probably best ignored until you are familiar with the rest of the system. Home-manager is also less all-or-nothing than NixOS itself, so you can freely chose which dotfiles you want to manage manually and which you want to generate via home-manager.As for nitpicks when it comes to daily use: Due to everything in NixOS being fully reproducible, NixOS makes little to no use of binary compatibility, meaning if
libfoo
changes, everything that depends on it has to change too. This requires a bit more downloading than other distributions. After an upgrade, NixOS will also keep two copies of everything around until you garbage collect them. This allows you to just go back to an older version via the boot manager. But it also means that you might need two or three times as much storage as on other distributions, at least until you garbage collect. But generally that’s a worthy trade-off unless you are on an extremely resource constrained system (anything >=32GB storage should be fine).Finally, if in doubt, install the Nix package manager on whatever distribution you are using right now. You don’t have to go the full NixOS at once, you can install Nix packages on any Linux distribution and play around with it, similar to flatpak.