aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/nixos/doc/manual/installation/upgrading.xml
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/nixos/doc/manual/installation/upgrading.xml')
-rw-r--r--infra/libkookie/nixpkgs/nixos/doc/manual/installation/upgrading.xml139
1 files changed, 139 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/nixos/doc/manual/installation/upgrading.xml b/infra/libkookie/nixpkgs/nixos/doc/manual/installation/upgrading.xml
new file mode 100644
index 000000000000..15ba5db9a37b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/nixos/doc/manual/installation/upgrading.xml
@@ -0,0 +1,139 @@
+<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-20.09">nixos-20.09</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-20.09-small">nixos-20.09-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 20.09 ISO, you will be subscribed to the
+ <literal>nixos-20.09</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 20.09 stable channel:
+<screen>
+<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.09 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-20.09-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-20.09;
+</programlisting>
+ </para>
+ </section>
+</chapter>