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 .MR 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 .MR 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 .I INSTALL
80 writes various autodetected settings to
81 .BR \*9/config .
82 The file
83 .B \*9/LOCAL.config
84 is appended to
85 .B config
86 after this auto-detection and can be used to override the choices.
87 If
88 .B LOCAL.config
89 contains a line
90 .B WSYSTYPE=nowsys
91 then the system is built without using X11.
92 .B LOCAL.config
93 may also list settings for
94 .B CC9
95 (the host C compiler)
96 and
97 .B CC9FLAGS
98 (any additional flags to pass to the compiler).
99 Values more complex than single words should be quoted
100 with single quotes.
101 .PP
102 On most Linux systems, the X11 header packages need to be installed
103 to build using X11. On Debian. the required packages are
104 libfontconfig1-dev, libx11-dev, libxext-dev, and libxt-dev.
105 On Ubuntu, it suffices to install xorg-dev.
106 .PP
107 .I INSTALL
108 can safely be repeated to rebuild the system from scratch.
109 .PP
110 Once the system is built for the first time,
111 it can be maintained and rebuilt using
112 .MR mk (1) .
113 To rebuild individual commands or libraries,
114 run
115 .B mk
116 .B install
117 and
118 .B mk
119 .B clean
120 in the appropriate source directory
121 (see
122 .MR src (1) ).
123 .SH FILES
124 .TP
125 .B \*9/lib/moveplan9.files
126 the list of files that need to have
127 .B /usr/local/plan9
128 edited out of them
129 .TP
130 .B \*9/lib/moveplan9.sh
131 the script that edits the files
132 .TP
133 .B \*9/src/mkmk.sh
134 the shell script used to build
135 .MR mk (1)
136 .TP
137 .B \*9/dist/manweb
138 the shell script that builds the HTML manual
139 .TP
140 .B \*9/man/index.html
141 the top-level page in the HTML version of the manual
142 .TP
143 .B \*9/install.log
144 logged output from the last run of
145 .I INSTALL
146 .TP
147 .B \*9/install.sum
148 a summary of
149 .B install.log
150 .SH SEE ALSO
151 .MR intro (1) ,
152 .MR git (1)