* Unindent.

This commit is contained in:
Eelco Dolstra 2004-10-14 11:54:41 +00:00
parent 371c57d8a7
commit 98c69e5172

View file

@ -1,96 +1,77 @@
<chapter id='chap-installation'> <chapter id='chap-installation'><title>Installation</title>
<title>Installation</title>
<sect1>
<title>Obtaining Nix</title>
<para> <sect1><title>Obtaining Nix</title>
The easiest way to obtain Nix is to download a <ulink
<para>The easiest way to obtain Nix is to download a <ulink
url='http://www.cs.uu.nl/groups/ST/Trace/Nix'>source url='http://www.cs.uu.nl/groups/ST/Trace/Nix'>source
distribution</ulink>. RPMs for SuSE and Red Hat are also distribution</ulink>. RPMs for Red Hat 9 are also available. These
available. These distributions are generated automatically. distributions are generated automatically.</para>
</para>
<para> <para>Alternatively, the most recent sources of Nix can be obtained
Alternatively, the most recent sources of Nix can be obtained from its from its <ulink
<ulink url='https://svn.cs.uu.nl:12443/repos/trace/nix/trunk'>Subversion url='https://svn.cs.uu.nl:12443/repos/trace/nix/trunk'>Subversion
repository</ulink>. For example, the following command will check out repository</ulink>. For example, the following command will check out
the latest revision into a directory called <filename>nix</filename>: the latest revision into a directory called <filename>nix</filename>:</para>
</para>
<screen> <screen>
$ svn checkout https://svn.cs.uu.nl:12443/repos/trace/nix/trunk nix</screen> $ svn checkout https://svn.cs.uu.nl:12443/repos/trace/nix/trunk nix</screen>
<para> <para>Likewise, specific releases can be obtained from the <ulink
Likewise, specific releases can be obtained from the <ulink
url='https://svn.cs.uu.nl:12443/repos/trace/nix/tags'>tags url='https://svn.cs.uu.nl:12443/repos/trace/nix/tags'>tags
directory</ulink> of the repository. If you don't have Subversion, you directory</ulink> of the repository. If you don't have Subversion,
can also download an automatically generated <ulink you can also download an automatically generated <ulink
url='https://svn.cs.uu.nl:12443/dist/trace/'>compressed url='https://svn.cs.uu.nl:12443/dist/trace/'>compressed
tar-file</ulink> of the head revision of the trunk. tar-file</ulink> of the head revision of the trunk.</para>
</para>
</sect1> </sect1>
<sect1>
<title>Prerequisites</title>
<para> <sect1><title>Prerequisites</title>
The following prerequisites only apply when you build from
source. Binary releases (e.g., RPMs) have no prerequisites.
</para>
<para> <para>The following prerequisites only apply when you build from
A fairly recent version of GCC/G++ is required. Version 2.95 source. Binary releases (e.g., RPMs) have no prerequisites.</para>
and higher should work.
</para>
<para> <para>A fairly recent version of GCC/G++ is required. Version 2.95
To build this manual and the man-pages you need the and higher should work.</para>
<command>xmllint</command> and <command>xsltproc</command>
programs, which are part of the <literal>libxml2</literal> and <para>To build this manual and the man-pages you need the
<literal>libxslt</literal> packages, respectively. You also <command>xmllint</command> and <command>xsltproc</command> programs,
need the <ulink which are part of the <literal>libxml2</literal> and
url='http://docbook.sourceforge.net/projects/xsl/'>DocBook XSL <literal>libxslt</literal> packages, respectively. You also need the
<ulink url='http://docbook.sourceforge.net/projects/xsl/'>DocBook XSL
stylesheets</ulink> and optionally the <ulink stylesheets</ulink> and optionally the <ulink
url='http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip'> url='http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip'>
DocBook XML 4.2 DTD</ulink>. Note that these are only required DocBook XML 4.2 DTD</ulink>. Note that these are only required if you
if you modify the manual sources or when you are building from modify the manual sources or when you are building from the Subversion
the Subversion repository. repository.</para>
</para>
<para> <para>To build the parser, very <emphasis>recent</emphasis> versions
To build the parser, very <emphasis>recent</emphasis> versions
of Bison and Flex are required. (This is because Nix needs GLR of Bison and Flex are required. (This is because Nix needs GLR
support in Bison and reentrancy support in Flex.) For Bison, support in Bison and reentrancy support in Flex.) For Bison, you need
you need version 1.875c or higher (1.875 does version 1.875c or higher (1.875 does <emphasis>not</emphasis> work),
<emphasis>not</emphasis> work), which can be obtained from the which can be obtained from the <ulink
<ulink url='ftp://alpha.gnu.org/pub/gnu/bison'>GNU FTP url='ftp://alpha.gnu.org/pub/gnu/bison'>GNU FTP server</ulink>. For
server</ulink>. For Flex, you need version 2.5.31, which is Flex, you need version 2.5.31, which is available on <ulink
available on <ulink url='http://lex.sourceforge.net/'>SourceForge</ulink>. Slightly older
url='http://lex.sourceforge.net/'>SourceForge</ulink>. Slightly versions may also work, but ancient versions like the ubiquitous
older versions may also work, but ancient versions like the 2.5.4a won't. Note that these are only required if you modify the
ubiquitous 2.5.4a won't. Note that these are only required if parser or when you are building from the Subversion repository.</para>
you modify the parser or when you are building from the
Subversion repository. <para>Nix uses Sleepycat's Berkeley DB and CWI's ATerm library. These
</para> are included in the Nix source distribution. If you build from the
Subversion repository, you must download them yourself and place them
in the <filename>externals/</filename> directory. See
<filename>externals/Makefile.am</filename> for the precise URLs of
these packages.</para>
<para>
Nix uses Sleepycat's Berkeley DB and CWI's ATerm library. These
are included in the Nix source distribution. If you build from
the Subversion repository, you must download them yourself and
place them in the <filename>externals/</filename> directory.
See <filename>externals/Makefile.am</filename> for the precise
URLs of these packages.
</para>
</sect1> </sect1>
<sect1>
<title>Building Nix from source</title>
<para> <sect1><title>Building Nix from source</title>
After unpacking or checking out the Nix sources, issue the following
commands: <para>After unpacking or checking out the Nix sources, issue the
following commands:
</para> </para>
<screen> <screen>
@ -98,70 +79,56 @@ $ ./configure <replaceable>options...</replaceable>
$ make $ make
$ make install</screen> $ make install</screen>
<para> <para>When building from the Subversion repository, these should be
When building from the Subversion repository, these should be preceded by preceded by the command:
the command:
</para> </para>
<screen> <screen>
$ autoreconf -i</screen> $ autoreconf -i</screen>
<para> <para>The installation path can be specified by passing the
The installation path can be specified by passing the
<option>--prefix=<replaceable>prefix</replaceable></option> to <option>--prefix=<replaceable>prefix</replaceable></option> to
<command>configure</command>. The default installation directory is <command>configure</command>. The default installation directory is
<filename>/nix</filename>. You can change this to any location you like. <filename>/nix</filename>. You can change this to any location you
You must have write permission to the <replaceable>prefix</replaceable> like. You must have write permission to the
path. <replaceable>prefix</replaceable> path.
</para> </para>
<warning> <warning><para>It is advisable <emphasis>not</emphasis> to change the
<para> installation prefix from its default, since doing so will in all
It is advisable <emphasis>not</emphasis> to change the installation likelihood make it impossible to use derivations built on other
prefix from its default, since doing so will in all likelihood make it systems.</para></warning>
impossible to use derivations built on other systems.
</para>
</warning>
<para> <para>If you want to rebuilt the documentation, pass the full path to
If you want to rebuilt the documentation, pass the full path to the the DocBook XML catalog file (<filename>docbook.cat</filename>) and to
DocBook XML catalog file (<filename>docbook.cat</filename>) and to the the DocBook XSL stylesheets using the
DocBook XSL stylesheets using the
<option>--with-docbook-catalog=<replaceable>path</replaceable></option> <option>--with-docbook-catalog=<replaceable>path</replaceable></option>
and <option>--with-docbook-xsl=<replaceable>path</replaceable></option> and
options. <option>--with-docbook-xsl=<replaceable>path</replaceable></option>
</para> options.</para>
</sect1> </sect1>
<sect1> <sect1><title>Installing from RPMs</title>
<title>Installing from RPMs</title>
<para> <para>RPM packages of Nix can be downloaded from <ulink
RPM packages of Nix can be downloaded from <ulink url='http://www.cs.uu.nl/groups/ST/Trace/Nix' />. These RPMs should
url='http://www.cs.uu.nl/groups/ST/Trace/Nix' />. These RPMs work for most fairly recent releases of SuSE and Red Hat Linux. They
should work for most fairly recent releases of SuSE and Red Hat have been known to work work on SuSE Linux 8.1 and 9.0, and Red Hat
Linux. They have been known to work work on SuSE Linux 8.1 and 9.0. In fact, it should work on any RPM-based Linux distribution
9.0, and Red Hat 9.0. In fact, it should work on any RPM-based based on <literal>glibc</literal> 2.3 or later.</para>
Linux distribution based on <literal>glibc</literal> 2.3 or
later.
</para>
<para> <para>Once downloaded, the RPMs can be installed or upgraded using
Once downloaded, the RPMs can be installed or upgraded using <command>rpm -U</command>. For example,</para>
<command>rpm -U</command>. For example,
</para>
<screen> <screen>
rpm -U nix-0.5pre664-1.i386.rpm</screen> rpm -U nix-0.5pre664-1.i386.rpm</screen>
<para> <para>The RPMs install into the directory <filename>/nix</filename>.
The RPMs install into the directory <filename>/nix</filename>. Nix can be uninstalled using <command>rpm -e nix</command>. After
Nix can be uninstalled using <command>rpm -e nix</command>. this it will be necessary to manually remove the Nix store and other
After this it will be necessary to manually remove the Nix store auxiliary data:</para>
and other auxiliary data:
</para>
<screen> <screen>
rm -rf /nix/store rm -rf /nix/store
@ -169,43 +136,38 @@ rm -rf /nix/var</screen>
</sect1> </sect1>
<sect1>
<title>Permissions</title>
<para> <sect1><title>Permissions</title>
All Nix operations must be performed under the user ID that owns
<para>All Nix operations must be performed under the user ID that owns
the Nix store and database the Nix store and database
(<filename><replaceable>prefix</replaceable>/store</filename> (<filename><replaceable>prefix</replaceable>/store</filename> and
and
<filename><replaceable>prefix</replaceable>/var/nix/db</filename>, <filename><replaceable>prefix</replaceable>/var/nix/db</filename>,
respectively). When installed from the RPM packages, these respectively). When installed from the RPM packages, these
directories are owned by <systemitem directories are owned by <systemitem
class='username'>root</systemitem>. class='username'>root</systemitem>.</para>
</para>
</sect1> </sect1>
<sect1>
<title>Using Nix</title>
<para> <sect1><title>Using Nix</title>
To use Nix, some environment variables should be set. In
<para>To use Nix, some environment variables should be set. In
particular, <envar>PATH</envar> should contain the directories particular, <envar>PATH</envar> should contain the directories
<filename><replaceable>prefix</replaceable>/bin</filename> and <filename><replaceable>prefix</replaceable>/bin</filename> and
<filename>~/.nix-profile/bin</filename>. The first directory <filename>~/.nix-profile/bin</filename>. The first directory contains
contains the Nix tools themselves, while the Nix tools themselves, while <filename>~/.nix-profile</filename> is
<filename>~/.nix-profile</filename> is a symbolic link to the a symbolic link to the current <emphasis>user environment</emphasis>
current <emphasis>user environment</emphasis> (an automatically (an automatically generated package consisting of symlinks to
generated package consisting of symlinks to installed packages). installed packages). The simplest way to set the required environment
The simplest way to set the required environment variables is to variables is to include the file
include the file
<filename><replaceable>prefix</replaceable>/etc/profile.d/nix.sh</filename> <filename><replaceable>prefix</replaceable>/etc/profile.d/nix.sh</filename>
in your <filename>~/.bashrc</filename> (or similar), like this: in your <filename>~/.bashrc</filename> (or similar), like this:</para>
</para>
<screen> <screen>
. <replaceable>prefix</replaceable>/etc/profile.d/nix.sh</screen> . <replaceable>prefix</replaceable>/etc/profile.d/nix.sh</screen>
</sect1> </sect1>
</chapter> </chapter>