forked from mirrors/nixpkgs
a099ca4505
[Squashed commits to make git blame etc. more likely to work. -ED]
91 lines
3.3 KiB
XML
91 lines
3.3 KiB
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>Stable channels, such as <literal
|
||
xlink:href="http://nixos.org/channels/nixos-14.04">nixos-14.04</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 3.4.66 to 3.4.67 (a minor bug fix), but
|
||
not from 3.4.<replaceable>x</replaceable> to
|
||
3.11.<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>
|
||
</listitem>
|
||
<listitem>
|
||
<para>The unstable channel, <literal
|
||
xlink:href="http://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>
|
||
</itemizedlist>
|
||
|
||
To see what channels are available, go to <link
|
||
xlink:href="http://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.)</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 14.04 ISO, you will be subscribed to
|
||
the <literal>nixos-14.04</literal> channel. To see which NixOS
|
||
channel you’re subscribed to, run the following as root:
|
||
|
||
<screen>
|
||
$ nix-channel --list | grep nixos
|
||
nixos https://nixos.org/channels/nixos-unstable
|
||
</screen>
|
||
|
||
To switch to a different NixOS channel, do
|
||
|
||
<screen>
|
||
$ nix-channel --add http://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 14.04 stable channel:
|
||
|
||
<screen>
|
||
$ nix-channel --add http://nixos.org/channels/nixos-14.04 nixos
|
||
</screen>
|
||
|
||
But it you want to live on the bleeding edge:
|
||
|
||
<screen>
|
||
$ nix-channel --add http://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>
|
||
$ nixos-rebuild switch --upgrade
|
||
</screen>
|
||
|
||
which is equivalent to the more verbose <literal>nix-channel --update
|
||
nixos; nixos-rebuild switch</literal>.</para>
|
||
|
||
<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>
|
||
|
||
</chapter>
|