nixos: nixos/doc/manual/installation/upgrading.xml to CommonMark

Changed files
+271 -140
nixos
doc
+152
nixos/doc/manual/from_md/installation/upgrading.chapter.xml
···
+
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-upgrading">
+
<title>Upgrading NixOS</title>
+
<para>
+
The best way to keep your NixOS installation up to date is to use
+
one of the NixOS <emphasis>channels</emphasis>. 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:
+
</para>
+
<itemizedlist>
+
<listitem>
+
<para>
+
<emphasis>Stable channels</emphasis>, such as
+
<link xlink:href="https://nixos.org/channels/nixos-21.05"><literal>nixos-21.05</literal></link>.
+
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.
+
</para>
+
</listitem>
+
<listitem>
+
<para>
+
The <emphasis>unstable channel</emphasis>,
+
<link xlink:href="https://nixos.org/channels/nixos-unstable"><literal>nixos-unstable</literal></link>.
+
This corresponds to NixOS’s main development branch, and may
+
thus see radical changes between channel updates. It’s not
+
recommended for production systems.
+
</para>
+
</listitem>
+
<listitem>
+
<para>
+
<emphasis>Small channels</emphasis>, such as
+
<link xlink:href="https://nixos.org/channels/nixos-21.05-small"><literal>nixos-21.05-small</literal></link>
+
or
+
<link xlink:href="https://nixos.org/channels/nixos-unstable-small"><literal>nixos-unstable-small</literal></link>.
+
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.
+
</para>
+
</listitem>
+
</itemizedlist>
+
<para>
+
To see what channels are available, go to
+
<link xlink:href="https://nixos.org/channels">https://nixos.org/channels</link>.
+
(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
+
<link xlink:href="https://nixos.org/nixos/download.html">https://nixos.org/nixos/download.html</link>
+
to find the newest supported stable release.
+
</para>
+
<para>
+
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 <literal>nixos-21.05</literal> channel. To see which NixOS
+
channel you’re subscribed to, run the following as root:
+
</para>
+
<programlisting>
+
# nix-channel --list | grep nixos
+
nixos https://nixos.org/channels/nixos-unstable
+
</programlisting>
+
<para>
+
To switch to a different NixOS channel, do
+
</para>
+
<programlisting>
+
# nix-channel --add https://nixos.org/channels/channel-name nixos
+
</programlisting>
+
<para>
+
(Be sure to include the <literal>nixos</literal> parameter at the
+
end.) For instance, to use the NixOS 21.05 stable channel:
+
</para>
+
<programlisting>
+
# nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
+
</programlisting>
+
<para>
+
If you have a server, you may want to use the <quote>small</quote>
+
channel instead:
+
</para>
+
<programlisting>
+
# nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
+
</programlisting>
+
<para>
+
And if you want to live on the bleeding edge:
+
</para>
+
<programlisting>
+
# nix-channel --add https://nixos.org/channels/nixos-unstable nixos
+
</programlisting>
+
<para>
+
You can then upgrade NixOS to the latest version in your chosen
+
channel by running
+
</para>
+
<programlisting>
+
# nixos-rebuild switch --upgrade
+
</programlisting>
+
<para>
+
which is equivalent to the more verbose
+
<literal>nix-channel --update nixos; nixos-rebuild switch</literal>.
+
</para>
+
<note>
+
<para>
+
Channels are set per user. This means that running
+
<literal>nix-channel --add</literal> as a non root user (or
+
without sudo) will not affect configuration in
+
<literal>/etc/nixos/configuration.nix</literal>
+
</para>
+
</note>
+
<warning>
+
<para>
+
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.
+
</para>
+
</warning>
+
<section xml:id="sec-upgrading-automatic">
+
<title>Automatic Upgrades</title>
+
<para>
+
You can keep a NixOS system up-to-date automatically by adding the
+
following to <literal>configuration.nix</literal>:
+
</para>
+
<programlisting language="bash">
+
system.autoUpgrade.enable = true;
+
system.autoUpgrade.allowReboot = true;
+
</programlisting>
+
<para>
+
This enables a periodically executed systemd service named
+
<literal>nixos-upgrade.service</literal>. If the
+
<literal>allowReboot</literal> option is <literal>false</literal>,
+
it runs <literal>nixos-rebuild switch --upgrade</literal> to
+
upgrade NixOS to the latest version in the current channel. (To
+
see when the service runs, see
+
<literal>systemctl list-timers</literal>.) If
+
<literal>allowReboot</literal> is <literal>true</literal>, 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.
+
</para>
+
<programlisting language="bash">
+
system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.05;
+
</programlisting>
+
</section>
+
</chapter>
+1 -1
nixos/doc/manual/installation/installation.xml
···
<xi:include href="../from_md/installation/obtaining.chapter.xml" />
<xi:include href="installing.xml" />
<xi:include href="../from_md/installation/changing-config.chapter.xml" />
-
<xi:include href="upgrading.xml" />
+
<xi:include href="../from_md/installation/upgrading.chapter.xml" />
</part>
+118
nixos/doc/manual/installation/upgrading.chapter.md
···
+
# 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 <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:
+
+
```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;
+
```
-139
nixos/doc/manual/installation/upgrading.xml
···
-
<chapter xmlns="http://docbook.org/ns/docbook"
-
xmlns:xlink="http://www.w3.org/1999/xlink"
-
version="5.0"
-
xml:id="sec-upgrading">
-
<title>Upgrading NixOS</title>
-
<para>
-
The best way to keep your NixOS installation up to date is to use one of the
-
NixOS <emphasis>channels</emphasis>. 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:
-
<itemizedlist>
-
<listitem>
-
<para>
-
<emphasis>Stable channels</emphasis>, such as
-
<literal
-
xlink:href="https://nixos.org/channels/nixos-21.05">nixos-21.05</literal>.
-
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.<replaceable>x</replaceable> to 4.20.<replaceable>x</replaceable> (a
-
major change that has the potential to break things). Stable channels are
-
generally maintained until the next stable branch is created.
-
</para>
-
<para></para>
-
</listitem>
-
<listitem>
-
<para>
-
The <emphasis>unstable channel</emphasis>,
-
<literal
-
xlink:href="https://nixos.org/channels/nixos-unstable">nixos-unstable</literal>.
-
This corresponds to NixOS’s main development branch, and may thus see
-
radical changes between channel updates. It’s not recommended for
-
production systems.
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
<emphasis>Small channels</emphasis>, such as
-
<literal
-
xlink:href="https://nixos.org/channels/nixos-21.05-small">nixos-21.05-small</literal>
-
or
-
<literal
-
xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>.
-
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.
-
</para>
-
</listitem>
-
</itemizedlist>
-
To see what channels are available, go to
-
<link xlink:href="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
-
<link xlink:href="https://nixos.org/nixos/download.html"/> to find the newest
-
supported stable release.
-
</para>
-
<para>
-
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
-
<literal>nixos-21.05</literal> channel. To see which NixOS channel you’re
-
subscribed to, run the following as root:
-
<screen>
-
<prompt># </prompt>nix-channel --list | grep nixos
-
nixos https://nixos.org/channels/nixos-unstable
-
</screen>
-
To switch to a different NixOS channel, do
-
<screen>
-
<prompt># </prompt>nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
-
</screen>
-
(Be sure to include the <literal>nixos</literal> parameter at the end.) For
-
instance, to use the NixOS 21.05 stable channel:
-
<screen>
-
<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
-
</screen>
-
If you have a server, you may want to use the “small” channel instead:
-
<screen>
-
<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
-
</screen>
-
And if you want to live on the bleeding edge:
-
<screen>
-
<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-unstable nixos
-
</screen>
-
</para>
-
<para>
-
You can then upgrade NixOS to the latest version in your chosen channel by
-
running
-
<screen>
-
<prompt># </prompt>nixos-rebuild switch --upgrade
-
</screen>
-
which is equivalent to the more verbose <literal>nix-channel --update nixos;
-
nixos-rebuild switch</literal>.
-
</para>
-
<note>
-
<para>
-
Channels are set per user. This means that running <literal> nix-channel
-
--add</literal> as a non root user (or without sudo) will not affect
-
configuration in <literal>/etc/nixos/configuration.nix</literal>
-
</para>
-
</note>
-
<warning>
-
<para>
-
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.
-
</para>
-
</warning>
-
<section xml:id="sec-upgrading-automatic">
-
<title>Automatic Upgrades</title>
-
-
<para>
-
You can keep a NixOS system up-to-date automatically by adding the following
-
to <filename>configuration.nix</filename>:
-
<programlisting>
-
<xref linkend="opt-system.autoUpgrade.enable"/> = true;
-
<xref linkend="opt-system.autoUpgrade.allowReboot"/> = true;
-
</programlisting>
-
This enables a periodically executed systemd service named
-
<literal>nixos-upgrade.service</literal>. If the <literal>allowReboot</literal>
-
option is <literal>false</literal>, it runs <command>nixos-rebuild switch
-
--upgrade</command> to upgrade NixOS to the latest version in the current
-
channel. (To see when the service runs, see <command>systemctl list-timers</command>.)
-
If <literal>allowReboot</literal> is <literal>true</literal>, 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.
-
<programlisting>
-
<xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-21.05;
-
</programlisting>
-
</para>
-
</section>
-
</chapter>