.TH INSTALL 1
.SH NAME
install \- notes about Plan 9 from User Space installation
.SH SYNOPSIS
.B
cd \*9; ./INSTALL
[
.B -b
|
.B -c
]
.SH DESCRIPTION
To obtain the Plan 9 tree, use CVS
(see
.IR cvs (1))
or download a tar file from
.HR http://swtch.com/plan9port "" .
.PP
The tree can be unpacked anywhere, but the
usual place is
.BR /usr/local/plan9 .
In the root of the tree, run
.BR ./INSTALL .
This script builds the Plan 9 build program
.IR mk (1)
if necessary,
cleans all previously built object files and libraries out of the tree,
rebuilds and installs everything, and then cleans up.
.PP
There are a few files in tree which have the root
hard-coded in them.
After the build, 
.I INSTALL
edits these files to replace the string
.B /usr/local/plan9
with the name of the root of the current tree.
.PP
Finally,
.I INSTALL
builds an HTML version of the manual and installs it in
.BR \*9/man .
.PP
The installation can be thought of as two steps:
build all the binaries, and then edit files as necessary
to fix the references to the installation root.
If necessary, these can be run separately.
Given the
.B -b
flag,
.I INSTALL
performs only the first step.
Given the
.B -c
flag,
.I INSTALL
performs only the second step.
The first step can be done with the tree in a temporary work directory,
but the second step must be done once the tree is in its final location.
These flags are only necessary when trying to conform to the
expectations of certain package management systems.
.PP
At the end of the installation,
.I INSTALL
prints suggested settings for the environment variables 
.B $PLAN9
and
.BR $PATH .
.PP
Plan 9 from User Space uses different threading implementations on Linux 2.6 and
later kernels than on 2.4 and earlier;
and on FreeBSD 5 and later kernels than on FreeBSD 4 and earlier.
Running binaries from one class on another will not work.
.PP
Some Linux 2.6 systems (e.g., Gentoo) do not use the new NPTL pthread library
even though the kernel supports them.  On these systems, plan9port must 
fall back on the threading code intended for Linux 2.4.  To accomplish this,
.I INSTALL
checks whether the running system uses NPTL and sets
.B SYSVERSION
in
.B \*9/config
accordingly.
The file
.B \*9/LOCAL.config
is appended to
.B config
after this auto-detection and can be used to override the choices.
If 
.B LOCAL.config
contains a line
.B WSYSTYPE=nowsys
then the system is built without using X11.
.PP
.I INSTALL
can safely be repeated to rebuild the system from scratch.
.PP
Once the system is built for the first time,
it can be maintained and rebuilt using 
.IR mk (1).
To rebuild individual commands or libraries,
run
.B mk
.B install
and
.B mk
.B clean
in the appropriate source directory
(see
.IR src (1)).
.SH FILES
.TP
.B \*9/lib/moveplan9.files
the list of files that need to have
.B /usr/local/plan9
edited out of them
.TP
.B \*9/lib/moveplan9.sh
the script that edits the files
.TP
.B \*9/src/mkmk.sh
the shell script used to build
.IR mk (1)
.TP
.B \*9/dist/manweb
the shell script that builds the HTML manual
.TP
.B \*9/man/index.html
the top-level page in the HTML version of the manual
.TP
.B \*9/install.log
logged output from the last run of
.I INSTALL
.TP
.B \*9/install.isum
a summary of
.B install.log
.SH SEE ALSO
.IR intro (1),
.IR cvs (1)
