Blob


1 .TH INSTALL 1
2 .SH NAME
3 install \- notes about Plan 9 from User Space installation
4 .SH SYNOPSIS
5 .B
6 cd \*9; ./INSTALL
7 [
8 .B -b
9 |
10 .B -c
11 ] [
12 .B -r
13 .I path
14 ]
15 .SH DESCRIPTION
16 To obtain the Plan 9 tree, use Git
17 (see
18 .IR git (1))
19 or download a tar file from
20 .HR https://9fans.github.io/plan9port "" .
21 .PP
22 The tree can be unpacked anywhere, but the
23 usual place is
24 .BR /usr/local/plan9 .
25 In the root of the tree, run
26 .BR ./INSTALL .
27 This script builds the Plan 9 build program
28 .IR mk (1)
29 if necessary,
30 cleans all previously built object files and libraries out of the tree,
31 rebuilds and installs everything, and then cleans up.
32 .PP
33 There are a few files in tree which have the root
34 hard-coded in them.
35 After the build,
36 .I INSTALL
37 edits these files to replace the string
38 .B /usr/local/plan9
39 with the name of the root of the current tree.
40 .PP
41 Finally,
42 .I INSTALL
43 builds an HTML version of the manual and installs it in
44 .BR \*9/man .
45 .PP
46 The installation can be thought of as two steps:
47 build all the binaries, and then edit files as necessary
48 to fix the references to the installation root.
49 If necessary, these can be run separately.
50 Given the
51 .B -b
52 flag,
53 .I INSTALL
54 performs only the first step.
55 Given the
56 .B -c
57 flag,
58 .I INSTALL
59 performs only the second step.
60 The first step can be done with the tree in a temporary work directory,
61 but the second step must be done once the tree is in its final location.
62 If you want to build the project in one location and then install into
63 another location, use
64 .B -r
65 .I path
66 to specify the
67 .I final
68 location of Plan9 tree.
69 These flags are only necessary when trying to conform to the
70 expectations of certain package management systems.
71 .PP
72 At the end of the installation,
73 .I INSTALL
74 prints suggested settings for the environment variables
75 .B $PLAN9
76 and
77 .BR $PATH .
78 .PP
79 Plan 9 from User Space uses different threading implementations on Linux 2.6 and
80 later kernels than on 2.4 and earlier;
81 and on FreeBSD 5 and later kernels than on FreeBSD 4 and earlier.
82 Running binaries from one class on another will not work.
83 .PP
84 Some Linux 2.6 systems (e.g., Gentoo) do not use the new NPTL pthread library
85 even though the kernel supports them. On these systems, plan9port must
86 fall back on the threading code intended for Linux 2.4. To accomplish this,
87 .I INSTALL
88 checks whether the running system uses NPTL and sets
89 .B SYSVERSION
90 in
91 .B \*9/config
92 accordingly.
93 The file
94 .B \*9/LOCAL.config
95 is appended to
96 .B config
97 after this auto-detection and can be used to override the choices.
98 If
99 .B LOCAL.config
100 contains a line
101 .B WSYSTYPE=nowsys
102 then the system is built without using X11.
103 .PP
104 On most Linux systems, the X11 header packages need to be installed
105 to build using X11. On Debian. the required packages are
106 libx11-dev, libxext-dev, and libxt-dev.
107 On Ubuntu, it suffices to install xorg-dev.
108 .PP
109 .I INSTALL
110 can safely be repeated to rebuild the system from scratch.
111 .PP
112 Once the system is built for the first time,
113 it can be maintained and rebuilt using
114 .IR mk (1).
115 To rebuild individual commands or libraries,
116 run
117 .B mk
118 .B install
119 and
120 .B mk
121 .B clean
122 in the appropriate source directory
123 (see
124 .IR src (1)).
125 .SH FILES
126 .TP
127 .B \*9/lib/moveplan9.files
128 the list of files that need to have
129 .B /usr/local/plan9
130 edited out of them
131 .TP
132 .B \*9/lib/moveplan9.sh
133 the script that edits the files
134 .TP
135 .B \*9/src/mkmk.sh
136 the shell script used to build
137 .IR mk (1)
138 .TP
139 .B \*9/dist/manweb
140 the shell script that builds the HTML manual
141 .TP
142 .B \*9/man/index.html
143 the top-level page in the HTML version of the manual
144 .TP
145 .B \*9/install.log
146 logged output from the last run of
147 .I INSTALL
148 .TP
149 .B \*9/install.sum
150 a summary of
151 .B install.log
152 .SH SEE ALSO
153 .IR intro (1),
154 .IR git (1)