diff --git a/nixos/doc/manual/from_md/installation/changing-config.chapter.xml b/nixos/doc/manual/from_md/installation/changing-config.chapter.xml
new file mode 100644
index 000000000000..86f0b15b41c5
--- /dev/null
+++ b/nixos/doc/manual/from_md/installation/changing-config.chapter.xml
@@ -0,0 +1,117 @@
+
+ Changing the Configuration
+
+ The file /etc/nixos/configuration.nix contains
+ the current configuration of your machine. Whenever you’ve
+ changed something in that
+ file, you should do
+
+
+# nixos-rebuild switch
+
+
+ to build the new configuration, make it the default configuration
+ for booting, and try to realise the configuration in the running
+ system (e.g., by restarting system services).
+
+
+
+ This command doesn't start/stop
+ user services
+ automatically. nixos-rebuild only runs a
+ daemon-reload for each user with running user
+ services.
+
+
+
+
+ These commands must be executed as root, so you should either run
+ them from a root shell or by prefixing them with
+ sudo -i.
+
+
+
+ You can also do
+
+
+# nixos-rebuild test
+
+
+ to build the configuration and switch the running system to it, but
+ without making it the boot default. So if (say) the configuration
+ locks up your machine, you can just reboot to get back to a working
+ configuration.
+
+
+ There is also
+
+
+# nixos-rebuild boot
+
+
+ to build the configuration and make it the boot default, but not
+ switch to it now (so it will only take effect after the next
+ reboot).
+
+
+ You can make your configuration show up in a different submenu of
+ the GRUB 2 boot screen by giving it a different profile
+ name, e.g.
+
+
+# nixos-rebuild switch -p test
+
+
+ which causes the new configuration (and previous ones created using
+ -p test) to show up in the GRUB submenu
+ NixOS - Profile 'test'. This can be useful to
+ separate test configurations from stable
+ configurations.
+
+
+ Finally, you can do
+
+
+$ nixos-rebuild build
+
+
+ to build the configuration but nothing more. This is useful to see
+ whether everything compiles cleanly.
+
+
+ If you have a machine that supports hardware virtualisation, you can
+ also test the new configuration in a sandbox by building and running
+ a QEMU virtual machine that contains the
+ desired configuration. Just do
+
+
+$ nixos-rebuild build-vm
+$ ./result/bin/run-*-vm
+
+
+ The VM does not have any data from your host system, so your
+ existing user accounts and home directories will not be available
+ unless you have set mutableUsers = false. Another
+ way is to temporarily add the following to your configuration:
+
+
+users.users.your-user.initialHashedPassword = "test";
+
+
+ Important: delete the $hostname.qcow2 file if
+ you have started the virtual machine at least once without the right
+ users, otherwise the changes will not get picked up. You can forward
+ ports on the host to the guest. For instance, the following will
+ forward host port 2222 to guest port 22 (SSH):
+
+
+$ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm
+
+
+ allowing you to log in via SSH (assuming you have set the
+ appropriate passwords or SSH authorized keys):
+
+
+$ ssh -p 2222 localhost
+
+
diff --git a/nixos/doc/manual/from_md/installation/obtaining.chapter.xml b/nixos/doc/manual/from_md/installation/obtaining.chapter.xml
new file mode 100644
index 000000000000..a922feda2536
--- /dev/null
+++ b/nixos/doc/manual/from_md/installation/obtaining.chapter.xml
@@ -0,0 +1,48 @@
+
+ Obtaining NixOS
+
+ NixOS ISO images can be downloaded from the
+ NixOS
+ download page. There are a number of installation options. If
+ you happen to have an optical drive and a spare CD, burning the
+ image to CD and booting from that is probably the easiest option.
+ Most people will need to prepare a USB stick to boot from.
+ describes the preferred
+ method to prepare a USB stick. A number of alternative methods are
+ presented in the
+ NixOS
+ Wiki.
+
+
+ As an alternative to installing NixOS yourself, you can get a
+ running NixOS system through several other means:
+
+
+
+
+ Using virtual appliances in Open Virtualization Format (OVF)
+ that can be imported into VirtualBox. These are available from
+ the
+ NixOS
+ download page.
+
+
+
+
+ Using AMIs for Amazon’s EC2. To find one for your region and
+ instance type, please refer to the
+ list
+ of most recent AMIs.
+
+
+
+
+ Using NixOps, the NixOS-based cloud deployment tool, which
+ allows you to provision VirtualBox and EC2 NixOS instances from
+ declarative specifications. Check out the
+ NixOps
+ homepage for details.
+
+
+
+
diff --git a/nixos/doc/manual/from_md/installation/upgrading.chapter.xml b/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
new file mode 100644
index 000000000000..c0c5a2190fb2
--- /dev/null
+++ b/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
@@ -0,0 +1,152 @@
+
+ Upgrading NixOS
+
+ The best way to keep your NixOS installation up to date is to use
+ one of the NixOS channels. A channel is a Nix
+ mechanism for distributing Nix expressions and associated binaries.
+ The NixOS channels are updated automatically from NixOS’s Git
+ repository after certain tests have passed and all packages have
+ been built. These channels are:
+
+
+
+
+ Stable channels, such as
+ nixos-21.05.
+ These only get conservative bug fixes and package upgrades. For
+ instance, a channel update may cause the Linux kernel on your
+ system to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix),
+ but not from 4.19.x to 4.20.x (a major change that has the
+ potential to break things). Stable channels are generally
+ maintained until the next stable branch is created.
+
+
+
+
+ The unstable channel,
+ nixos-unstable.
+ This corresponds to NixOS’s main development branch, and may
+ thus see radical changes between channel updates. It’s not
+ recommended for production systems.
+
+
+
+
+ Small channels, such as
+ nixos-21.05-small
+ or
+ nixos-unstable-small.
+ These are identical to the stable and unstable channels
+ described above, except that they contain fewer binary packages.
+ This means they get updated faster than the regular channels
+ (for instance, when a critical security patch is committed to
+ NixOS’s source tree), but may require more packages to be built
+ from source than usual. They’re mostly intended for server
+ environments and as such contain few GUI applications.
+
+
+
+
+ To see what channels are available, go to
+ https://nixos.org/channels.
+ (Note that the URIs of the various channels redirect to a directory
+ that contains the channel’s latest version and includes ISO images
+ and VirtualBox appliances.) Please note that during the release
+ process, channels that are not yet released will be present here as
+ well. See the Getting NixOS page
+ https://nixos.org/nixos/download.html
+ to find the newest supported stable release.
+
+
+ When you first install NixOS, you’re automatically subscribed to the
+ NixOS channel that corresponds to your installation source. For
+ instance, if you installed from a 21.05 ISO, you will be subscribed
+ to the nixos-21.05 channel. To see which NixOS
+ channel you’re subscribed to, run the following as root:
+
+
+# nix-channel --list | grep nixos
+nixos https://nixos.org/channels/nixos-unstable
+
+
+ To switch to a different NixOS channel, do
+
+
+# nix-channel --add https://nixos.org/channels/channel-name nixos
+
+
+ (Be sure to include the nixos parameter at the
+ end.) For instance, to use the NixOS 21.05 stable channel:
+
+
+# nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
+
+
+ If you have a server, you may want to use the small
+ channel instead:
+
+
+# nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
+
+
+ And if you want to live on the bleeding edge:
+
+
+# nix-channel --add https://nixos.org/channels/nixos-unstable nixos
+
+
+ You can then upgrade NixOS to the latest version in your chosen
+ channel by running
+
+
+# nixos-rebuild switch --upgrade
+
+
+ which is equivalent to the more verbose
+ nix-channel --update nixos; nixos-rebuild switch.
+
+
+
+ Channels are set per user. This means that running
+ nix-channel --add as a non root user (or
+ without sudo) will not affect configuration in
+ /etc/nixos/configuration.nix
+
+
+
+
+ It is generally safe to switch back and forth between channels.
+ The only exception is that a newer NixOS may also have a newer Nix
+ version, which may involve an upgrade of Nix’s database schema.
+ This cannot be undone easily, so in that case you will not be able
+ to go back to your original channel.
+
+
+
+ Automatic Upgrades
+
+ You can keep a NixOS system up-to-date automatically by adding the
+ following to configuration.nix:
+
+
+system.autoUpgrade.enable = true;
+system.autoUpgrade.allowReboot = true;
+
+
+ This enables a periodically executed systemd service named
+ nixos-upgrade.service. If the
+ allowReboot option is false,
+ it runs nixos-rebuild switch --upgrade to
+ upgrade NixOS to the latest version in the current channel. (To
+ see when the service runs, see
+ systemctl list-timers.) If
+ allowReboot is true, then
+ the system will automatically reboot if the new generation
+ contains a different kernel, initrd or kernel modules. You can
+ also specify a channel explicitly, e.g.
+
+
+system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.05;
+
+
+
diff --git a/nixos/doc/manual/installation/changing-config.chapter.md b/nixos/doc/manual/installation/changing-config.chapter.md
new file mode 100644
index 000000000000..8a404f085d7c
--- /dev/null
+++ b/nixos/doc/manual/installation/changing-config.chapter.md
@@ -0,0 +1,100 @@
+# Changing the Configuration {#sec-changing-config}
+
+The file `/etc/nixos/configuration.nix` contains the current
+configuration of your machine. Whenever you've [changed
+something](#ch-configuration) in that file, you should do
+
+```ShellSession
+# nixos-rebuild switch
+```
+
+to build the new configuration, make it the default configuration for
+booting, and try to realise the configuration in the running system
+(e.g., by restarting system services).
+
+::: {.warning}
+This command doesn\'t start/stop [user services](#opt-systemd.user.services)
+automatically. `nixos-rebuild` only runs a `daemon-reload` for each user with running
+user services.
+:::
+
+::: {.warning}
+These commands must be executed as root, so you should either run them
+from a root shell or by prefixing them with `sudo -i`.
+:::
+
+You can also do
+
+```ShellSession
+# nixos-rebuild test
+```
+
+to build the configuration and switch the running system to it, but
+without making it the boot default. So if (say) the configuration locks
+up your machine, you can just reboot to get back to a working
+configuration.
+
+There is also
+
+```ShellSession
+# nixos-rebuild boot
+```
+
+to build the configuration and make it the boot default, but not switch
+to it now (so it will only take effect after the next reboot).
+
+You can make your configuration show up in a different submenu of the
+GRUB 2 boot screen by giving it a different *profile name*, e.g.
+
+```ShellSession
+# nixos-rebuild switch -p test
+```
+
+which causes the new configuration (and previous ones created using
+`-p test`) to show up in the GRUB submenu "NixOS - Profile \'test\'".
+This can be useful to separate test configurations from "stable"
+configurations.
+
+Finally, you can do
+
+```ShellSession
+$ nixos-rebuild build
+```
+
+to build the configuration but nothing more. This is useful to see
+whether everything compiles cleanly.
+
+If you have a machine that supports hardware virtualisation, you can
+also test the new configuration in a sandbox by building and running a
+QEMU *virtual machine* that contains the desired configuration. Just do
+
+```ShellSession
+$ nixos-rebuild build-vm
+$ ./result/bin/run-*-vm
+```
+
+The VM does not have any data from your host system, so your existing
+user accounts and home directories will not be available unless you have
+set `mutableUsers = false`. Another way is to temporarily add the
+following to your configuration:
+
+```nix
+users.users.your-user.initialHashedPassword = "test";
+```
+
+*Important:* delete the \$hostname.qcow2 file if you have started the
+virtual machine at least once without the right users, otherwise the
+changes will not get picked up. You can forward ports on the host to the
+guest. For instance, the following will forward host port 2222 to guest
+port 22 (SSH):
+
+```ShellSession
+$ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm
+```
+
+allowing you to log in via SSH (assuming you have set the appropriate
+passwords or SSH authorized keys):
+
+```ShellSession
+$ ssh -p 2222 localhost
+```
diff --git a/nixos/doc/manual/installation/changing-config.xml b/nixos/doc/manual/installation/changing-config.xml
deleted file mode 100644
index 4288806d5eb2..000000000000
--- a/nixos/doc/manual/installation/changing-config.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-
- Changing the Configuration
-
- The file /etc/nixos/configuration.nix contains the
- current configuration of your machine. Whenever you’ve
- changed something in that file, you
- should do
-
-# nixos-rebuild switch
-
- to build the new configuration, make it the default configuration for
- booting, and try to realise the configuration in the running system (e.g., by
- restarting system services).
-
-
- This command doesn't start/stop user
- services automatically. nixos-rebuild only runs a
- daemon-reload for each user with running user services.
-
-
-
-
-
- These commands must be executed as root, so you should either run them from
- a root shell or by prefixing them with sudo -i.
-
-
-
- You can also do
-
-# nixos-rebuild test
-
- to build the configuration and switch the running system to it, but without
- making it the boot default. So if (say) the configuration locks up your
- machine, you can just reboot to get back to a working configuration.
-
-
- There is also
-
-# nixos-rebuild boot
-
- to build the configuration and make it the boot default, but not switch to it
- now (so it will only take effect after the next reboot).
-
-
- You can make your configuration show up in a different submenu of the GRUB 2
- boot screen by giving it a different profile name, e.g.
-
-# nixos-rebuild switch -p test
-
- which causes the new configuration (and previous ones created using
- -p test) to show up in the GRUB submenu “NixOS - Profile
- 'test'”. This can be useful to separate test configurations from
- “stable” configurations.
-
-
- Finally, you can do
-
-$ nixos-rebuild build
-
- to build the configuration but nothing more. This is useful to see whether
- everything compiles cleanly.
-
-
- If you have a machine that supports hardware virtualisation, you can also
- test the new configuration in a sandbox by building and running a QEMU
- virtual machine that contains the desired configuration.
- Just do
-
-$ nixos-rebuild build-vm
-$ ./result/bin/run-*-vm
-
- The VM does not have any data from your host system, so your existing user
- accounts and home directories will not be available unless you have set
- mutableUsers = false. Another way is to temporarily add
- the following to your configuration:
-
-users.users.your-user.initialHashedPassword = "test";
-
- Important: delete the $hostname.qcow2 file if you have
- started the virtual machine at least once without the right users, otherwise
- the changes will not get picked up. You can forward ports on the host to the
- guest. For instance, the following will forward host port 2222 to guest port
- 22 (SSH):
-
-$ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm
-
- allowing you to log in via SSH (assuming you have set the appropriate
- passwords or SSH authorized keys):
-
-$ ssh -p 2222 localhost
-
-
-
diff --git a/nixos/doc/manual/installation/installation.xml b/nixos/doc/manual/installation/installation.xml
index 2901f462dee0..cc18a9c6e9ff 100644
--- a/nixos/doc/manual/installation/installation.xml
+++ b/nixos/doc/manual/installation/installation.xml
@@ -10,8 +10,8 @@
first-time use.
-
+
-
-
+
+
diff --git a/nixos/doc/manual/installation/obtaining.chapter.md b/nixos/doc/manual/installation/obtaining.chapter.md
new file mode 100644
index 000000000000..832ec6146a9d
--- /dev/null
+++ b/nixos/doc/manual/installation/obtaining.chapter.md
@@ -0,0 +1,26 @@
+# Obtaining NixOS {#sec-obtaining}
+
+NixOS ISO images can be downloaded from the [NixOS download
+page](https://nixos.org/nixos/download.html). There are a number of
+installation options. If you happen to have an optical drive and a spare
+CD, burning the image to CD and booting from that is probably the
+easiest option. Most people will need to prepare a USB stick to boot
+from. [](#sec-booting-from-usb) describes the preferred method to
+prepare a USB stick. A number of alternative methods are presented in
+the [NixOS Wiki](https://nixos.wiki/wiki/NixOS_Installation_Guide#Making_the_installation_media).
+
+As an alternative to installing NixOS yourself, you can get a running
+NixOS system through several other means:
+
+- Using virtual appliances in Open Virtualization Format (OVF) that
+ can be imported into VirtualBox. These are available from the [NixOS
+ download page](https://nixos.org/nixos/download.html).
+
+- Using AMIs for Amazon's EC2. To find one for your region and
+ instance type, please refer to the [list of most recent
+ AMIs](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualisation/ec2-amis.nix).
+
+- Using NixOps, the NixOS-based cloud deployment tool, which allows
+ you to provision VirtualBox and EC2 NixOS instances from declarative
+ specifications. Check out the [NixOps
+ homepage](https://nixos.org/nixops) for details.
diff --git a/nixos/doc/manual/installation/obtaining.xml b/nixos/doc/manual/installation/obtaining.xml
deleted file mode 100644
index 3b8671782ded..000000000000
--- a/nixos/doc/manual/installation/obtaining.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
- Obtaining NixOS
-
- NixOS ISO images can be downloaded from the
- NixOS download
- page. There are a number of installation options. If you happen to
- have an optical drive and a spare CD, burning the image to CD and booting
- from that is probably the easiest option. Most people will need to prepare a
- USB stick to boot from. describes the
- preferred method to prepare a USB stick. A number of alternative methods are
- presented in the
- NixOS
- Wiki.
-
-
- As an alternative to installing NixOS yourself, you can get a running NixOS
- system through several other means:
-
-
-
- Using virtual appliances in Open Virtualization Format (OVF) that can be
- imported into VirtualBox. These are available from the
- NixOS download
- page.
-
-
-
-
- Using AMIs for Amazon’s EC2. To find one for your region and instance
- type, please refer to the
- list
- of most recent AMIs.
-
-
-
-
- Using NixOps, the NixOS-based cloud deployment tool, which allows you to
- provision VirtualBox and EC2 NixOS instances from declarative
- specifications. Check out the
- NixOps homepage for
- details.
-
-
-
-
-
diff --git a/nixos/doc/manual/installation/upgrading.chapter.md b/nixos/doc/manual/installation/upgrading.chapter.md
new file mode 100644
index 000000000000..b7903b9d3cbb
--- /dev/null
+++ b/nixos/doc/manual/installation/upgrading.chapter.md
@@ -0,0 +1,118 @@
+# Upgrading NixOS {#sec-upgrading}
+
+The best way to keep your NixOS installation up to date is to use one of
+the NixOS *channels*. A channel is a Nix mechanism for distributing Nix
+expressions and associated binaries. The NixOS channels are updated
+automatically from NixOS's Git repository after certain tests have
+passed and all packages have been built. These channels are:
+
+- *Stable channels*, such as [`nixos-21.05`](https://nixos.org/channels/nixos-21.05).
+ These only get conservative bug fixes and package upgrades. For
+ instance, a channel update may cause the Linux kernel on your system
+ to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
+ from 4.19.x to 4.20.x (a major change that has the potential to break things).
+ Stable channels are generally maintained until the next stable
+ branch is created.
+
+- The *unstable channel*, [`nixos-unstable`](https://nixos.org/channels/nixos-unstable).
+ This corresponds to NixOS's main development branch, and may thus see
+ radical changes between channel updates. It's not recommended for
+ production systems.
+
+- *Small channels*, such as [`nixos-21.05-small`](https://nixos.org/channels/nixos-21.05-small)
+ or [`nixos-unstable-small`](https://nixos.org/channels/nixos-unstable-small).
+ These are identical to the stable and unstable channels described above,
+ except that they contain fewer binary packages. This means they get updated
+ faster than the regular channels (for instance, when a critical security patch
+ is committed to NixOS's source tree), but may require more packages to be
+ built from source than usual. They're mostly intended for server environments
+ and as such contain few GUI applications.
+
+To see what channels are available, go to .
+(Note that the URIs of the various channels redirect to a directory that
+contains the channel's latest version and includes ISO images and
+VirtualBox appliances.) Please note that during the release process,
+channels that are not yet released will be present here as well. See the
+Getting NixOS page to find the
+newest supported stable release.
+
+When you first install NixOS, you're automatically subscribed to the
+NixOS channel that corresponds to your installation source. For
+instance, if you installed from a 21.05 ISO, you will be subscribed to
+the `nixos-21.05` channel. To see which NixOS channel you're subscribed
+to, run the following as root:
+
+```ShellSession
+# nix-channel --list | grep nixos
+nixos https://nixos.org/channels/nixos-unstable
+```
+
+To switch to a different NixOS channel, do
+
+```ShellSession
+# nix-channel --add https://nixos.org/channels/channel-name nixos
+```
+
+(Be sure to include the `nixos` parameter at the end.) For instance, to
+use the NixOS 21.05 stable channel:
+
+```ShellSession
+# nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
+```
+
+If you have a server, you may want to use the "small" channel instead:
+
+```ShellSession
+# nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
+```
+
+And if you want to live on the bleeding edge:
+
+```ShellSession
+# nix-channel --add https://nixos.org/channels/nixos-unstable nixos
+```
+
+You can then upgrade NixOS to the latest version in your chosen channel
+by running
+
+```ShellSession
+# nixos-rebuild switch --upgrade
+```
+
+which is equivalent to the more verbose `nix-channel --update nixos; nixos-rebuild switch`.
+
+::: {.note}
+Channels are set per user. This means that running `nix-channel --add`
+as a non root user (or without sudo) will not affect
+configuration in `/etc/nixos/configuration.nix`
+:::
+
+::: {.warning}
+It is generally safe to switch back and forth between channels. The only
+exception is that a newer NixOS may also have a newer Nix version, which
+may involve an upgrade of Nix's database schema. This cannot be undone
+easily, so in that case you will not be able to go back to your original
+channel.
+:::
+
+## Automatic Upgrades {#sec-upgrading-automatic}
+
+You can keep a NixOS system up-to-date automatically by adding the
+following to `configuration.nix`:
+
+```nix
+system.autoUpgrade.enable = true;
+system.autoUpgrade.allowReboot = true;
+```
+
+This enables a periodically executed systemd service named
+`nixos-upgrade.service`. If the `allowReboot` option is `false`, it runs
+`nixos-rebuild switch --upgrade` to upgrade NixOS to the latest version
+in the current channel. (To see when the service runs, see `systemctl list-timers`.)
+If `allowReboot` is `true`, then the system will automatically reboot if
+the new generation contains a different kernel, initrd or kernel
+modules. You can also specify a channel explicitly, e.g.
+
+```nix
+system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.05;
+```
diff --git a/nixos/doc/manual/installation/upgrading.xml b/nixos/doc/manual/installation/upgrading.xml
deleted file mode 100644
index 960d4fa9a436..000000000000
--- a/nixos/doc/manual/installation/upgrading.xml
+++ /dev/null
@@ -1,139 +0,0 @@
-
- Upgrading NixOS
-
- The best way to keep your NixOS installation up to date is to use one of the
- NixOS channels. A channel is a Nix mechanism for
- distributing Nix expressions and associated binaries. The NixOS channels are
- updated automatically from NixOS’s Git repository after certain tests have
- passed and all packages have been built. These channels are:
-
-
-
- Stable channels, such as
- nixos-21.05.
- These only get conservative bug fixes and package upgrades. For instance,
- a channel update may cause the Linux kernel on your system to be upgraded
- from 4.19.34 to 4.19.38 (a minor bug fix), but not from
- 4.19.x to 4.20.x (a
- major change that has the potential to break things). Stable channels are
- generally maintained until the next stable branch is created.
-
-
-
-
-
- The unstable channel,
- nixos-unstable.
- This corresponds to NixOS’s main development branch, and may thus see
- radical changes between channel updates. It’s not recommended for
- production systems.
-
-
-
-
- Small channels, such as
- nixos-21.05-small
- or
- nixos-unstable-small.
- These are identical to the stable and unstable channels described above,
- except that they contain fewer binary packages. This means they get
- updated faster than the regular channels (for instance, when a critical
- security patch is committed to NixOS’s source tree), but may require
- more packages to be built from source than usual. They’re mostly
- intended for server environments and as such contain few GUI applications.
-
-
-
- To see what channels are available, go to
- . (Note that the URIs of the
- various channels redirect to a directory that contains the channel’s latest
- version and includes ISO images and VirtualBox appliances.) Please note that
- during the release process, channels that are not yet released will be
- present here as well. See the Getting NixOS page
- to find the newest
- supported stable release.
-
-
- When you first install NixOS, you’re automatically subscribed to the NixOS
- channel that corresponds to your installation source. For instance, if you
- installed from a 21.05 ISO, you will be subscribed to the
- nixos-21.05 channel. To see which NixOS channel you’re
- subscribed to, run the following as root:
-
-# nix-channel --list | grep nixos
-nixos https://nixos.org/channels/nixos-unstable
-
- To switch to a different NixOS channel, do
-
-# nix-channel --add https://nixos.org/channels/channel-name nixos
-
- (Be sure to include the nixos parameter at the end.) For
- instance, to use the NixOS 21.05 stable channel:
-
-# nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
-
- If you have a server, you may want to use the “small” channel instead:
-
-# nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
-
- And if you want to live on the bleeding edge:
-
-# nix-channel --add https://nixos.org/channels/nixos-unstable nixos
-
-
-
- You can then upgrade NixOS to the latest version in your chosen channel by
- running
-
-# nixos-rebuild switch --upgrade
-
- which is equivalent to the more verbose nix-channel --update nixos;
- nixos-rebuild switch.
-
-
-
- Channels are set per user. This means that running nix-channel
- --add as a non root user (or without sudo) will not affect
- configuration in /etc/nixos/configuration.nix
-
-
-
-
- It is generally safe to switch back and forth between channels. The only
- exception is that a newer NixOS may also have a newer Nix version, which may
- involve an upgrade of Nix’s database schema. This cannot be undone easily,
- so in that case you will not be able to go back to your original channel.
-
-
-
- Automatic Upgrades
-
-
- You can keep a NixOS system up-to-date automatically by adding the following
- to configuration.nix:
-
- = true;
- = true;
-
- This enables a periodically executed systemd service named
- nixos-upgrade.service. If the allowReboot
- option is false, it runs nixos-rebuild switch
- --upgrade to upgrade NixOS to the latest version in the current
- channel. (To see when the service runs, see systemctl list-timers.)
- If allowReboot is true, then the
- system will automatically reboot if the new generation contains a different
- kernel, initrd or kernel modules.
- You can also specify a channel explicitly, e.g.
-
- = https://nixos.org/channels/nixos-21.05;
-
-
-
-