NixOS 23.11 released!

Hi everyone,

We are very pleased to announce the public availability of NixOS 23.11 (the Linux distribution) and nixpkgs 23.11 (the package set), under the codename “Tapir”.

This release was made possible by the effort of over 2100 contributors. I want to say thank you to everyone in the community for working on this.

A highlight of the release is GNOME 45, which introduced a new image viewer and a new camera app. The GNOME team has been working on the update for the past 4 months, and the update was able to make the cut right before the release.

Another highlight is the update of the default version of the LLVM package set from 11 to 16 on both Linux and Darwin. @reckenrode has worked hard on this to make this transition as seemingless as possible.

A lot more features and improvements also made it into the release, the full list can be found in the release notes.

The 23.05 “Stoat” release is now officially deprecated, and will reach its end-of-life and stop receiving security updates after 2023-12-31. Please schedule your upgrades accordingly.

We are scheduling a retrospective for 2023-12-09. If you have something to contribute, please join the release management room, where the URL will be announced.

I would like to thank @RaitoBezarius for guiding me through everything, the release editors (@alejandrosame and @riotbib) for working on the release notes. And special thanks to @riotbib for taking the picture for the release artwork, and @infinisil for the clutch at the final release meeting.

Enjoy the new release! :tada:


How does one upgrade to 23.11, from previous version?

1 Like

There’s a section in the manual for that :slight_smile:

(This assumes you aren’t using flakes. If you are, just change the url in flake.nix)


Good job to everyone involved in making the release. Just having the release in the desired month is a massive improvement from when I started :slight_smile: .


Yes, wonderful work! Thank you so much! Onward to Uakari!


Awesome! A big thank you to everyone who made this possible! :partying_face: :rocket:


Why does this page mention 23.05?

Looks like it just hasn’t made it through the pipeline yet, it was updated on master less than a day ago:

1 Like

Awesome! This was my first time contributing to ZHF and it was so much fun to do even if my share was relatively tiny. Looking forward to more exciting Nix-things in the future :smiley:

Good job, everyone!


Those instructions are pretty much entirely wrong. They will only give you an update to the latest commit of NixOS 23.05, you will not be upgrading to 23.11. Don’t rely on LLMs for things you don’t understand yourself.

You need to start off by changing your channel, as the manual instructs.

If you’re really struggling to understand it, assuming you’re using the most defaultest NixOS 23.05, you need to run these commands:

sudo nix-channel --add nixos
sudo nixos-rebuild boot --upgrade
# You probably get some errors and warnings here that you need to take care
# of, do so and repeat until the above command succeeds
sudo shutdown -r now

A reboot is required according to the release notes, which you should really take a look at before/while upgrading. Using nixos-rebuild boot should probably generally be recommended for full version upgrades, if only to prevent confusing people with graphics library failures.

YMMV, this doesn’t cover user channels, home-manager, niv, etc., but neither does the manual in fairness. We probably should have a more foolproof set of “this is how you upgrade” instructions somewhere.


Not quite, sudo nix-channel --update will update all your channels, including e.g. a home-manager channel you might have.

nixos-rebuild switch --upgrade will only update the nixos channel (and other channels that explicitly opt-in to updating when that flag is used) by default. To mimic sudo nix-channel --update exactly, you need nixos-rebuild switch --upgrade-all.


I think honestly, that your instructions are a great start. :smiley:

Thanks for pointing out that the LLM was wrong, I have a very basic configuration, I think .
I added new packages only via configuration.nix, and added no further channels, home-manager, or anything of that sorts.

Still, after using NixOS for 2 months, this is the first time that I am truly stuck, and I think the documentation could definitely be improved here.

I was quite happy with it besides this, honestly. :slight_smile:

1 Like

Congrats on the release!

Is there page somewhere that lays out the EOL policies for the releases? I’m curious if there ever long(er)-term security supported versions?

1 Like

I think its always 7 months from the point of release.


What @ShalokShalom said is correct, but let me add that there is currently no LTS release, nor is one planned.


I’ve tried adding = ""; to my config file, and it doesn’t do anything, even after sudo nixos-rebuild switch and reboot.

Is it better to do the sudo nix-channel --add nixos and then sudo nixos-rebuild switch method?

To be more specific, this is what’s in my config file for auto system upgrades:

# system upgrades
system.autoUpgrade.enable = true;
system.autoUpgrade.allowReboot = false;
boot.kernelPackages = pkgs.linuxPackages_6_5; # Use pkgs.linuxPackages_6_5 if nvidia drivers fail, use pkgs.linuxPackages_latest if nvidia drivers work on "latest"! = "";

Yes. system.autoUpgrade runs said updates with a systemd timer which runs once a day by default.

You’ve basically told NixOS to update your system at midnight, or whenever you next boot your computer after midnight passes. That option is intended to do the small, tedious updates on a single NixOS version where you don’t expect much breakage, not distro upgrades.

It will likely trigger a rebuild, fail, and then dump the logs into your journal, where you won’t think to read them.

By default, it will also use nixos-rebuild switch, which is not recommended on major upgrades and may cause kernel panics (?).

While enabling that module is fine, and probably even good practice, I think I would not recommend setting, personally, unless you have a specialized use case (such as a custom nixpkgs fork with your own branching strategy). It makes it awkward to do the manual steps involved in stable upgrades.

Good tip for people who are upgrading for the first time:

If you run nixos-rebuild build-vm, (after updating your channel or flake input), you will get a script that boots your configuration in a VM, so you can make sure it works. The main catch here is that password data doesn’t get embedded, so you need something like services.getty.autologinUser = <username> if you want to do more than a boot check.


I’ve found package aliza dissapearing in this release. Why would a package disappear, whats the point?