NixOS is een Linux-distributie met een package manager die het mogelijk maakt om de configuratie declaratief te maken, in plaats van op te bouwen uit een sequentie van commando's en configuratiebestanden. Onder de motorkap gebruik Nix een functionele programmeertaal waarmee het systeem of de configuratie kan worden gedefinieerd. Nix is bedacht door Eelco Dolstra, een Nederlandse informaticus die aan de Universiteit van Utrecht op NixOS is gepromoveerd. Meer informatie over NixOS kan op ons eigen forum worden gevonden. Enkele dagen geleden is versie 20.09 van NixOS uitgekomen en de belangrijkste veranderingen daarin zijn hieronder voor je op een rijtje gezet.
Core version changes:Desktop Environments:
- gcc: 9.2.0 -> 9.3.0
- glibc: 2.30 -> 2.31
- linux: still defaults to 5.4.x, all supported kernels available
- mesa: 19.3.5 -> 20.1.7
Programming Languages and Frameworks:
- plasma5: 5.17.5 -> 5.18.5
- kdeApplications: 19.12.3 -> 20.08.1
- gnome3: 3.34 -> 3.36, see its release notes
- cinnamon: added at 4.6
- NixOS now distributes an official GNOME ISO
Databases and Service Monitoring:
- Agda ecosystem was heavily reworked (see more details below)
- PHP now defaults to PHP 7.4, updated from 7.3
- PHP 7.2 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 20.09 release
- Python 3 now defaults to Python 3.8 instead of 3.7
- Python 3.5 reached its upstream EOL at the end of September 2020: it has been removed from the list of available packages
Major module changes:
- MariaDB has been updated to 10.4, MariaDB Galera to 26.4. Please read the related upgrade instructions under backwards incompatibilities before upgrading.
- Zabbix now defaults to 5.0, updated from 4.4. Please read related sections under backwards compatibilities before upgrading.
NixOS module changes:
- Quickly configure a complete, private, self-hosted video conferencing solution with the new Jitsi Meet module.
- Two new options, authorizedKeysCommand and authorizedKeysCommandUser, have been added to the
openssh
module. If you haveAuthorizedKeysCommand
in your services.openssh.extraConfig you should make use of these new options instead.- There is a new module for Podman (
virtualisation.podman
), a drop-in replacement for the Docker command line.- The new
virtualisation.containers
module manages configuration shared by the CRI-O and Podman modules.- Declarative Docker containers are renamed from
docker-containers
tovirtualisation.oci-containers.containers
. This is to make it possible to usepodman
instead ofdocker
.- The new option documentation.man.generateCaches has been added to automatically generate the
man-db
caches, which are needed by utilities like whatis and apropos. The caches are generated during the build of the NixOS configuration: since this can be expensive when a large number of packages are installed, the feature is disabled by default.services.postfix.sslCACert
was replaced byservices.postfix.tlsTrustedAuthorities
which now defaults to system certificate authorities.- The various documented workarounds to use steam have been converted to a module.
programs.steam.enable
enables steam, controller support and the workarounds.- Support for built-in LCDs in various pieces of Logitech hardware (keyboards and USB speakers).
hardware.logitech.lcd.enable
enables support for all hardware supported by the g15daemon project.- The GRUB module gained support for basic password protection, which allows to restrict non-default entries in the boot menu to one or more users. The users and passwords are defined via the option
boot.loader.grub.users
. Note: Password support is only available in GRUB version 2.
- The NixOS module system now supports freeform modules as a mix between
types.attrsOf
andtypes.submodule
. These allow you to explicitly declare a subset of options while still permitting definitions without an associated option. See Section 50.8, “Freeform modules” for how to use them.- Following its deprecation in 20.03, the Perl NixOS test driver has been removed. All remaining tests have been ported to the Python test framework. Code outside nixpkgs using
make-test.nix
ortesting.nix
needs to be ported tomake-test-python.nix
andtesting-python.nix
respectively.- Subordinate GID and UID mappings are now set up automatically for all normal users. This will make container tools like Podman work as non-root users out of the box.