aboutsummaryrefslogtreecommitdiff
path: root/doc/manual
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual')
-rw-r--r--doc/manual/installation/env-variables.xml2
-rw-r--r--doc/manual/installation/installing-binary.xml178
-rw-r--r--doc/manual/installation/prerequisites-source.xml3
-rw-r--r--doc/manual/installation/supported-platforms.xml2
-rw-r--r--doc/manual/installation/upgrading.xml21
-rw-r--r--doc/manual/manual.xml1
-rw-r--r--doc/manual/release-notes/rl-2.1.xml25
7 files changed, 189 insertions, 43 deletions
diff --git a/doc/manual/installation/env-variables.xml b/doc/manual/installation/env-variables.xml
index 91ecd114f..d1ee0bb2e 100644
--- a/doc/manual/installation/env-variables.xml
+++ b/doc/manual/installation/env-variables.xml
@@ -39,7 +39,7 @@ bundle.</para>
<step><para>Set the environment variable and install Nix</para>
<screen>
$ export NIX_SSL_CERT_FILE=/etc/ssl/my-certificate-bundle.crt
-$ curl https://nixos.org/nix/install | sh
+$ sh &lt;(curl https://nixos.org/nix/install)
</screen></step>
<step><para>In the shell profile and rc files (for example,
diff --git a/doc/manual/installation/installing-binary.xml b/doc/manual/installation/installing-binary.xml
index 7e8dfb0db..394d8053b 100644
--- a/doc/manual/installation/installing-binary.xml
+++ b/doc/manual/installation/installing-binary.xml
@@ -6,13 +6,30 @@
<title>Installing a Binary Distribution</title>
-<para>If you are using Linux or macOS, the easiest way to install
-Nix is to run the following command:
+<para>If you are using Linux or macOS, the easiest way to install Nix
+is to run the following command:
<screen>
-$ bash &lt;(curl https://nixos.org/nix/install)
+ $ sh &lt;(curl https://nixos.org/nix/install)
</screen>
+As of Nix 2.1.0, the Nix installer will always default to creating a
+single-user installation, however opting in to the multi-user
+installation is highly recommended.
+</para>
+
+<section xml:id="sect-single-user-installation">
+ <title>Single User Installation</title>
+
+ <para>
+ To explicitly select a single-user installation on your system:
+
+ <screen>
+ sh &lt;(curl https://nixos.org/nix/install) --no-daemon
+</screen>
+ </para>
+
+<para>
This will perform a single-user installation of Nix, meaning that
<filename>/nix</filename> is owned by the invoking user. You should
run this under your usual user account, <emphasis>not</emphasis> as
@@ -33,58 +50,141 @@ and <filename>.profile</filename> to source
the <command>NIX_INSTALLER_NO_MODIFY_PROFILE</command> environment
variable before executing the install script to disable this
behaviour.
-
</para>
-<!--
-<para>You can also manually download and install a binary package.
-Binary packages of the latest stable release are available for Fedora,
-Debian, Ubuntu, macOS and various other systems from the <link
-xlink:href="http://nixos.org/nix/download.html">Nix homepage</link>.
-You can also get builds of the latest development release from our
-<link
-xlink:href="http://hydra.nixos.org/job/nix/master/release/latest-finished#tabs-constituents">continuous
-build system</link>.</para>
-<para>For Fedora, RPM packages are available. These can be installed
-or upgraded using <command>rpm -U</command>. For example,
+<para>You can uninstall Nix simply by running:
<screen>
-$ rpm -U nix-1.8-1.i386.rpm</screen>
+$ rm -rf /nix
+</screen>
</para>
-
-<para>For Debian and Ubuntu, you can download a Deb package and
-install it like this:
+</section>
+
+<section xml:id="sect-multi-user-installation">
+ <title>Multi User Installation</title>
+ <para>
+ The multi-user Nix installation creates system users, and a system
+ service for the Nix daemon.
+ </para>
+
+ <itemizedlist>
+ <title>Supported Systems</title>
+
+ <listitem>
+ <para>Linux running systemd, with SELinux disabled</para>
+ </listitem>
+ <listitem><para>macOS</para></listitem>
+ </itemizedlist>
+
+ <para>
+ You can instruct the installer to perform a multi-user
+ installation on your system:
+
+ <screen>
+ sh &lt;(curl https://nixos.org/nix/install) --daemon
+</screen>
+ </para>
+
+ <para>
+ The multi-user installation of Nix will create build users between
+ the user IDs 30001 and 30032, and a group with the group ID 30000.
+
+ You should run this under your usual user account,
+ <emphasis>not</emphasis> as root. The script will invoke
+ <command>sudo</command> as needed.
+ </para>
+
+ <note><para>
+ If you need Nix to use a different group ID or user ID set, you
+ will have to download the tarball manually and <link
+ linkend="sect-nix-install-binary-tarball">edit the install
+ script</link>.
+ </para></note>
+
+ <para>
+ The installer will modify <filename>/etc/bashrc</filename>, and
+ <filename>/etc/zshrc</filename> if they exist. The installer will
+ first back up these files with a
+ <literal>.backup-before-nix</literal> extension. The installer
+ will also create <filename>/etc/profile.d/nix.sh</filename>.
+ </para>
+
+ <para>You can uninstall Nix with the following commands:
<screen>
-$ dpkg -i nix_1.8-1_amd64.deb</screen>
+sudo rm -rf /etc/profile/nix.sh /etc/nix /nix ~root/.nix-profile ~root/.nix-defexpr ~root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels
+
+# If you are on Linux with systemd, you will need to run:
+sudo systemctl stop nix-daemon.socket
+sudo systemctl stop nix-daemon.service
+sudo systemctl disable nix-daemon.socket
+sudo systemctl disable nix-daemon.service
+sudo systemctl daemon-reload
+
+# If you are on macOS, you will need to run:
+sudo launchctl unload /Library/LaunchDaemons/org.nixos.nix-daemon.plist
+sudo rm /Library/LaunchDaemons/org.nixos.nix-daemon.plist
+</screen>
-</para>
--->
+ There may also be references to Nix in
+ <filename>/etc/profile</filename>,
+ <filename>/etc/bashrc</filename>, and
+ <filename>/etc/zshrc</filename> which you may remove.
+ </para>
-<para>You can also download a binary tarball that contains Nix and all
-its dependencies. (This is what the install script at
-<uri>https://nixos.org/nix/install</uri> does automatically.) You
-should unpack it somewhere (e.g. in <filename>/tmp</filename>), and
-then run the script named <command>install</command> inside the binary
-tarball:
+</section>
-<screen>
-alice$ cd /tmp
-alice$ tar xfj nix-1.8-x86_64-darwin.tar.bz2
-alice$ cd nix-1.8-x86_64-darwin
-alice$ ./install
-</screen>
+<section xml:id="sect-nix-install-pinned-version-url">
+ <title>Installing a pinned Nix version from a URL</title>
-</para>
+ <para>
+ NixOS.org hosts version-specific installation URLs for all Nix
+ versions since 1.11.16, at
+ <literal>https://nixos.org/releases/nix/nix-VERSION/install</literal>.
+ </para>
-<para>You can uninstall Nix simply by running:
+ <para>
+ These install scripts can be used the same as the main
+ NixOS.org installation script:
-<screen>
-$ rm -rf /nix
+ <screen>
+ sh &lt;(curl https://nixos.org/nix/install)
</screen>
+ </para>
-</para>
+ <para>
+ In the same directory of the install script are sha256 sums, and
+ gpg signature files.
+ </para>
+</section>
+
+<section xml:id="sect-nix-install-binary-tarball">
+ <title>Installing from a binary tarball</title>
+ <para>
+ You can also download a binary tarball that contains Nix and all
+ its dependencies. (This is what the install script at
+ <uri>https://nixos.org/nix/install</uri> does automatically.) You
+ should unpack it somewhere (e.g. in <filename>/tmp</filename>),
+ and then run the script named <command>install</command> inside
+ the binary tarball:
+
+
+<screen>
+alice$ cd /tmp
+alice$ tar xfj nix-1.8-x86_64-darwin.tar.bz2
+alice$ cd nix-1.8-x86_64-darwin
+alice$ ./install
+</screen>
+ </para>
+
+ <para>
+ If you need to edit the multi-user installation script to use
+ different group ID or a different user ID range, modify the
+ variables set in the file named
+ <filename>install-multi-user</filename>.
+ </para>
+</section>
</chapter>
diff --git a/doc/manual/installation/prerequisites-source.xml b/doc/manual/installation/prerequisites-source.xml
index 01e9688d6..ef14a1d75 100644
--- a/doc/manual/installation/prerequisites-source.xml
+++ b/doc/manual/installation/prerequisites-source.xml
@@ -29,7 +29,8 @@
<literal>libbz2</literal> library. Thus you must have bzip2
installed, including development headers and libraries. If your
distribution does not provide these, you can obtain bzip2 from <link
- xlink:href="http://www.bzip.org/"/>.</para></listitem>
+ xlink:href="https://web.archive.org/web/20180624184756/http://www.bzip.org/"
+ />.</para></listitem>
<listitem><para><literal>liblzma</literal>, which is provided by
XZ Utils. If your distribution does not provide this, you can
diff --git a/doc/manual/installation/supported-platforms.xml b/doc/manual/installation/supported-platforms.xml
index 6858573ff..3e74be49d 100644
--- a/doc/manual/installation/supported-platforms.xml
+++ b/doc/manual/installation/supported-platforms.xml
@@ -10,7 +10,7 @@
<itemizedlist>
- <listitem><para>Linux (i686, x86_64).</para></listitem>
+ <listitem><para>Linux (i686, x86_64, aarch64).</para></listitem>
<listitem><para>macOS (x86_64).</para></listitem>
diff --git a/doc/manual/installation/upgrading.xml b/doc/manual/installation/upgrading.xml
new file mode 100644
index 000000000..a3f86ade9
--- /dev/null
+++ b/doc/manual/installation/upgrading.xml
@@ -0,0 +1,21 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ version="5.0"
+ xml:id="ch-upgrading-nix">
+
+ <title>Upgrading Nix</title>
+
+ <para>
+ Multi-user Nix users on macOS can upgrade Nix by running
+ <command>sudo -i sh -c 'nix-channel --update &amp;&amp; nix-env
+ -iA nixpkgs.nix'; sudo launchctl stop org.nixos.nix-daemon; sudo
+ launchctl start org.nixos.nix-daemon</command>.
+ </para>
+
+ <para>
+ Single-user installations of Nix should run <command>nix-channel
+ --update; nix-env -iA nixpkgs.nix</command>.
+ </para>
+
+</chapter>
diff --git a/doc/manual/manual.xml b/doc/manual/manual.xml
index b408b6817..87d9de28a 100644
--- a/doc/manual/manual.xml
+++ b/doc/manual/manual.xml
@@ -32,6 +32,7 @@
<xi:include href="introduction/introduction.xml" />
<xi:include href="installation/installation.xml" />
+ <xi:include href="installation/upgrading.xml" />
<xi:include href="packages/package-management.xml" />
<xi:include href="expressions/writing-nix-expressions.xml" />
<xi:include href="advanced-topics/advanced-topics.xml" />
diff --git a/doc/manual/release-notes/rl-2.1.xml b/doc/manual/release-notes/rl-2.1.xml
index 9a5f37f66..16c243fc1 100644
--- a/doc/manual/release-notes/rl-2.1.xml
+++ b/doc/manual/release-notes/rl-2.1.xml
@@ -4,7 +4,7 @@
version="5.0"
xml:id="ssec-relnotes-2.1">
-<title>Release 2.1 (2018-08-31)</title>
+<title>Release 2.1 (2018-09-02)</title>
<para>This is primarily a bug fix release. It also reduces memory
consumption in certain situations. In addition, it has the following
@@ -13,6 +13,29 @@ new features:</para>
<itemizedlist>
<listitem>
+ <para>The Nix installer will no longer default to the Multi-User
+ installation for macOS. You can still <link
+ linkend="sect-multi-user-installation">instruct the installer to
+ run in multi-user mode</link>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>The Nix installer now supports performing a Multi-User
+ installation for Linux computers which are running systemd. You
+ can <link
+ linkend="sect-multi-user-installation">select a Multi-User installation</link> by passing the
+ <option>--daemon</option> flag to the installer: <command>sh &lt;(curl
+ https://nixos.org/nix/install) --daemon</command>.
+ </para>
+
+ <para>The multi-user installer cannot handle systems with SELinux.
+ If your system has SELinux enabled, you can <link
+ linkend="sect-single-user-installation">force the installer to run
+ in single-user mode</link>.</para>
+ </listitem>
+
+ <listitem>
<para>New builtin functions:
<literal>builtins.bitAnd</literal>,
<literal>builtins.bitOr</literal>,