Changed two machines over today. Things to remember based on that:
Somewhere in the release notes was a recommendation to use nixos-rebuild boot rather than nixos-rebuild switch, because not everything can be expected to work when mixing releases.
One of my machines printed some obtuse error message when running nixos-rebuild. The relevant issue was closed as resolved a year ago, but I still had to use the workaround of adding --install-bootloader to nixos-rebuild to finish the update.
Remember to sudo nix-channel --add https://channels.nixos.org/nixos-23.05 nixos or the equivalent to replace your channel before upgrading, or nothing much happens! ;)
Fantastic news! As usual the upgrade was infinitely less painful than any other distro. Massive thanks to the community for maintaining this giant distro with such aplomb!
I’m in the process of abandoning NixOS. It is just not suitable for Unix novices like myself. My most recent build is Linux Mint, which offers a more friendly app install and update experience for the uninitiated. I’m going to rebuild my NixOS machine on that distro soon too.
Knock on wood I’ve never had to “roll back”, which was the feature of NixOS which at the time was most appealing to me.
NixOS is still hard to get started with even with lots of *nix experience. Any Ubuntu or derivation like Mint is probably a good bet for “normal” users. They provide the vast majority of the value, at a fraction of the startup complexity. My own adventure was a little similar:
Tried installing Debian back in the early 2000s, and couldn’t even get Ethernet to work (in those days it was very much not plug-and-play).
Installed a bunch of distros, and was never too happy with any of them.
Ubuntu was the first point of no return. The usability was just next level, and it set a new bar for every Linux distro since then.
Arch Linux was the second point of no return. A rolling distro strangely turned out to be more stable than Ubuntu’s big releases, at the cost of a really complex setup process and clunky package management.
NixOS is the latest point of no return. Being able to configure all of my systems with a few hundred lines of extremely easy to read configuration.nix is vastly preferable to Puppet, never mind manually setting everything up.
I’m an experienced Linux system administrator and I make heavy use of NixOS for managing my homelab and cloud-hosted VMs, but I stil use Arch Linux on my desktop and laptop PCs. NixOS is great for servers but less good at being a desktop OS, and in any case for the computers I use daily I care more about being able to make quick and arbitrary config changes than I do about codifying their state with a configuration language.
I care more about being able to make quick and arbitrary config changes than I do about codifying their state with a configuration language.
So I think that’s more of a home manager thing than a NixOS thing. HM does seem to be the dominant way people use NixOS but I really hated not being able to hot reload my RC files (eg when configuring i3) and decided I wasn’t going to do it. And it works great. I just drop stuff in systemPackages and use the traditional configuration mechanisms and life is good.
I really think home manager is kinda misguided. Dropping RC files into place was never the painful thing about setting up a new machine, that’s the easy part. The sucky bits were remembering what constellation of packages you had installed (solved by NixOS already) and secrets management (eg creating and installing ssh keys, which HM doesn’t really do anything to help you with)
With my config in HM, I can do things like change a single variable and have my font or primary/secondary colors across all apps/environments change instantly. I can switch between wezterm/alacritty for my main term and things like running prs (pass in Rust) with a single variable change. I have all of my dotfiles version controlled alongside the package versions, meaning that when I rollback to before zellij changed their config format, everything “just works”.
I used stow for a very long time. HM is to stow, what NixOS is to Puppet. Though I do lament the eval/build times making trivial changes a bit annoying. But I find that’s easy to resolve too - when I’m iterating rapidly, I just do it in-place and then hoist that config into Nix/HM whenever it’s done and ready to be a part of my permanent config.
So I think that’s more of a home manager thing than a NixOS thing. HM does seem to be the dominant way people use NixOS but I really hated not being able to hot reload my RC files (eg when configuring i3) and decided I wasn’t going to do it. And it works great. I just drop stuff in systemPackages and use the traditional configuration mechanisms and life is good.
I’ve only very recently started using Home Manager, mostly as a replacement for several previous methods of managing dotfiles, but I’m finding that being able to codify a selection of packages I have installed is pretty useful. On the other hand, I’ve already run into some bugs with Home Manager; more importantly, I don’t trust the Nix ecosystem as it stands today to completely reliably manage every system configuration file I have on my system, or build every single package I care about (it seems like NodeJS packages are particularly vulnerable to having them break during a NixOS deploy, I think because a lot of the derivations for them were autogenerated from the Node metadata with some tool?).
Same here. I don’t know why, but I like to get to know the inner working of things and the whole “Just use home manager” way didn’t appeal to me.
Now after working out my own configuration setup I don’t see the appeal of it at all.
And I still have a lot of things I’d like to know about the nix language, but I’m getting there step by step.
Woah, kernel 6.x! I’m not old by any stretch, but when I started using Linux it was only on 3.2, makes me feel nostalgic for configuring my laptop’s kernel config with no supported network drivers… never mind.
Also that SSH settings change shouldn’t be buried as an “other” notable change…
Temporally maybe not, but they’re useful for keeping track of my life. I can’t remember what I was doing in 2015 but I damn well remember what I was doing around the period I used 3.11, and so on… I’m sure my hypothetical daughter’s wedding and kernel 11.5 will be a joyous occasion
Introduced into New Zealand in the late 19th century to control rabbits, the stoat has had a devastating effect on native bird populations. It was nominated as one of the world’s top 100 “worst invaders”.
Changed two machines over today. Things to remember based on that:
nixos-rebuild boot
rather thannixos-rebuild switch
, because not everything can be expected to work when mixing releases.nixos-rebuild
. The relevant issue was closed as resolved a year ago, but I still had to use the workaround of adding--install-bootloader
tonixos-rebuild
to finish the update.sudo nix-channel --add https://channels.nixos.org/nixos-23.05 nixos
or the equivalent to replace your channel before upgrading, or nothing much happens! ;)Fantastic news! As usual the upgrade was infinitely less painful than any other distro. Massive thanks to the community for maintaining this giant distro with such aplomb!
I’m in the process of abandoning NixOS. It is just not suitable for Unix novices like myself. My most recent build is Linux Mint, which offers a more friendly app install and update experience for the uninitiated. I’m going to rebuild my NixOS machine on that distro soon too.
Knock on wood I’ve never had to “roll back”, which was the feature of NixOS which at the time was most appealing to me.
NixOS is a piece of software, so it has no feelings. Welcome back whenever you feel like it.
NixOS is still hard to get started with even with lots of *nix experience. Any Ubuntu or derivation like Mint is probably a good bet for “normal” users. They provide the vast majority of the value, at a fraction of the startup complexity. My own adventure was a little similar:
configuration.nix
is vastly preferable to Puppet, never mind manually setting everything up.I’m an experienced Linux system administrator and I make heavy use of NixOS for managing my homelab and cloud-hosted VMs, but I stil use Arch Linux on my desktop and laptop PCs. NixOS is great for servers but less good at being a desktop OS, and in any case for the computers I use daily I care more about being able to make quick and arbitrary config changes than I do about codifying their state with a configuration language.
So I think that’s more of a home manager thing than a NixOS thing. HM does seem to be the dominant way people use NixOS but I really hated not being able to hot reload my RC files (eg when configuring i3) and decided I wasn’t going to do it. And it works great. I just drop stuff in systemPackages and use the traditional configuration mechanisms and life is good.
I really think home manager is kinda misguided. Dropping RC files into place was never the painful thing about setting up a new machine, that’s the easy part. The sucky bits were remembering what constellation of packages you had installed (solved by NixOS already) and secrets management (eg creating and installing ssh keys, which HM doesn’t really do anything to help you with)
With my config in HM, I can do things like change a single variable and have my font or primary/secondary colors across all apps/environments change instantly. I can switch between wezterm/alacritty for my main term and things like running
prs
(pass
in Rust) with a single variable change. I have all of my dotfiles version controlled alongside the package versions, meaning that when I rollback to before zellij changed their config format, everything “just works”.I used stow for a very long time. HM is to stow, what NixOS is to Puppet. Though I do lament the eval/build times making trivial changes a bit annoying. But I find that’s easy to resolve too - when I’m iterating rapidly, I just do it in-place and then hoist that config into Nix/HM whenever it’s done and ready to be a part of my permanent config.
I’ve only very recently started using Home Manager, mostly as a replacement for several previous methods of managing dotfiles, but I’m finding that being able to codify a selection of packages I have installed is pretty useful. On the other hand, I’ve already run into some bugs with Home Manager; more importantly, I don’t trust the Nix ecosystem as it stands today to completely reliably manage every system configuration file I have on my system, or build every single package I care about (it seems like NodeJS packages are particularly vulnerable to having them break during a NixOS deploy, I think because a lot of the derivations for them were autogenerated from the Node metadata with some tool?).
Same here. I don’t know why, but I like to get to know the inner working of things and the whole “Just use home manager” way didn’t appeal to me.
Now after working out my own configuration setup I don’t see the appeal of it at all.
And I still have a lot of things I’d like to know about the nix language, but I’m getting there step by step.
Hell, I use Manjaro for my several home servers even. The Arch distros are very usable and lightweight, and AUR is a godsend.
IMO that’s reasonable. When you have more experience, though, it’s definitely worth it to re-evaluate Nix and NixOS for your use cases.
Woah, kernel 6.x! I’m not old by any stretch, but when I started using Linux it was only on 3.2, makes me feel nostalgic for configuring my laptop’s kernel config with no supported network drivers… never mind.
Also that SSH settings change shouldn’t be buried as an “other” notable change…
Oh, so you didn’t live/endure the 2.6.* era? xD
2.5.* was worse, obviously. :-)
I’m not sure if you do not know what you’re talking about or if you really know what you’re talking about xD
Just in case: 2.5 was like the “unstable” branch of 2.4.
What’s special about 2.6 is that it lastest forever (7 years). It got 6 (!!) LTS releases and imagine 2.6.35.7 being one of those LTS 🙃
2.5 was a development version, leading up to 2.6.
My first kernel was in the 2.2 family, but quickly changed to 2.4 as it was a fun project.
So you did know what you were saying :)
The version number isn’t that important. Linus just raises it on a schedule. Stuff doesn’t break like around Linux 1.x or 2.x
Temporally maybe not, but they’re useful for keeping track of my life. I can’t remember what I was doing in 2015 but I damn well remember what I was doing around the period I used 3.11, and so on… I’m sure my hypothetical daughter’s wedding and kernel 11.5 will be a joyous occasion
As a kiwi, the choice of animal made me flinch!
TIL
source