Commit | Line | Data |
---|---|---|
805e021f CE |
1 | |
2 | Help on the GUI Installer | |
3 | ========================== | |
4 | ||
5 | ||
6 | Table of Contents | |
7 | ------------------ | |
8 | Introduction | |
9 | Install Guides | |
10 | Sysname directories | |
11 | Wildcard directories | |
12 | .skip files | |
13 | The RC File | |
14 | The Main Window | |
15 | Hostname | |
16 | Local installs | |
17 | Remote installs | |
18 | Multiple installations | |
19 | Path | |
20 | Finding the AFS distribution | |
21 | Finding the AFS sysname | |
22 | Accelerator buttons | |
23 | Setting default path from command line | |
24 | Packages | |
25 | Default vs Custom installation | |
26 | List of available packages and where it comes from | |
27 | Command line list of packages | |
28 | Adding new packages to the list | |
29 | Options | |
30 | Verbose | |
31 | Backup files | |
32 | Setting default values from command line | |
33 | Installation | |
34 | Info Only | |
35 | Install | |
36 | The Progress window | |
37 | Default installations | |
38 | Seeing the command output | |
39 | Finishing up the installation | |
40 | Why those two buttons are disabled | |
41 | Exit | |
42 | Errors | |
43 | ||
44 | ||
45 | ||
46 | INTRODUCTION | |
47 | ------------ | |
48 | This program is designed to install AFS on a machine from a | |
49 | standard AFS distribution directory. The AFS distribution is | |
50 | logically divided into sections called "packages", and one or more | |
51 | packages can be installed at a time. AFS can be installed on the | |
52 | local machine or to one or more remote machines on which AFS aware | |
53 | inetd is running. | |
54 | ||
55 | INSTALL GUIDES | |
56 | -------------- | |
57 | The installation of packages is controlled by perl subscripts | |
58 | called Install Guides. The complete set of Install Guides is kept | |
59 | under the lib/InstallGuides directory. There is one Install Guide | |
60 | per package, and it provides all of the Perl code that is necessary | |
61 | to install that package. Because different systems have different | |
62 | requirements for installation, the InstallGuides/ directory has in | |
63 | it different subdirectories for different systems. The | |
64 | subdirectories match the AFS sysnames, such as "sgi_64". Inside | |
65 | each system name subdirectory are package files that are specific | |
66 | to the system. | |
67 | There are also wildcard subdirectories, such as SGI_x, which can | |
68 | be searched if a desired package is NOT in its sysname | |
69 | subdirectory. The wildcarding consists of capitalizing the letters | |
70 | in the sysname, and using the letter "x" to match one or more | |
71 | characters. In the case of multiple wildcard directories matching a | |
72 | sysname, the longest wildcard directory wins. | |
73 | As a catchall wildcard, there is also a subdirectory "GENERIC" | |
74 | that can be searched if all other matches fail. | |
75 | If a file exists whose name is a package name with ".skip" | |
76 | appended, that package will not be installed on machines of that | |
77 | system type. This is useful to prevent GENERIC Installation Guides | |
78 | from being used, such as "bldkernel" on Solaris machines or "vfsck" | |
79 | on SGI machines. | |
80 | ||
81 | RC FILE | |
82 | -------- | |
83 | This installer program uses an rc script named "afsinstall.rc" | |
84 | located in the InstallGuides/ subdirectories. Locating the right one | |
85 | follows the same rules as locating an InstallGuide: look in the | |
86 | sysname subdirectory, then look in the wildcard directories, and | |
87 | lastly look in GENERIC. | |
88 | The GENERIC afsinstall.rc file is always read in, followed by the | |
89 | most system specific one available, if any. There can also be an | |
90 | afsinstall.rc file in the user's home directory given by the | |
91 | environment variable "HOME", and if it exists it will be read in | |
92 | last. If more than one of these afsinstall.rc files are read in, the | |
93 | files read later will merge with and overwrite the values and options | |
94 | from the earlier files. | |
95 | The rc file consists of three sections separated by a blank | |
96 | line. The first section sets up Path accelerator buttons, the second | |
97 | describes available packages. Both are described in the appropriate | |
98 | sections below. The third section sets configuration options similar | |
99 | to environment variables. Each line is of the form | |
100 | ||
101 | NAME=VALUE | |
102 | ||
103 | The InstallGuide files can then access the VALUE by referencing the | |
104 | key NAME in the hash Configuration. This is intended for use as | |
105 | options such as use of NFS aware kernel libraries, default cache size, | |
106 | etc. The VALUE can be omitted after the equals sign to signify a NULL | |
107 | value. | |
108 | ||
109 | The personal afsinstall.rc file in the user's home directory is | |
110 | intended to let the user select default packages to install and | |
111 | default options such as usage of NFS libraries. Because the user may | |
112 | want to set different options for different system types, system | |
113 | specific options can be put into an afsinstall.rc file. To make a | |
114 | given line in the file apply only to certain system types, the line | |
115 | can be prepended with an AFS system name followed by a colon, such as: | |
116 | ||
117 | sun4x_56 :modkernel 1 Dynamic kernel libraries and afsd | |
118 | ALPHA_x :modkernel 0 Dynamic kernel libraries and afsd | |
119 | ||
120 | The first line shows that Solaris 2.6 systems should have the | |
121 | "modkernel" package installed by default, while the wildcarded second | |
122 | line shows the same option should be off by default on all Alpha | |
123 | platforms. All systems that were not running Solaris 2.6 would | |
124 | completely skip the first line, such that the determination of | |
125 | installing the "modkernel" package by default would have to be | |
126 | resolved by one of the other afsinstall.rc files that was read in. | |
127 | The same applies for the second line in the example above for non | |
128 | Alpha machines. | |
129 | ||
130 | ||
131 | THE MAIN WINDOW | |
132 | ---------------- | |
133 | The install window is divided into four sections. From top to | |
134 | bottom, these sections select the host or hosts on which to | |
135 | install, locate the AFS distribution, select the packages to | |
136 | install, and set certain options. | |
137 | ||
138 | ||
139 | HOSTNAME | |
140 | -------- | |
141 | The top section first appears as an entry box labelled "Hostname" | |
142 | with the local hostname filled in. The local hostname was taken | |
143 | from the HOST environment variable. If an install is begun by | |
144 | pressing the "INSTALL" button, AFS will be installed on the local | |
145 | machine using the same user identity by which this program was run. | |
146 | If a new value is typed in and entered with the RETURN key, a | |
147 | second entry box will appear labelled "rsh as username:", and a | |
148 | default username is filled in. This value came from the RSHas | |
149 | variable set at the top of this program. When an installation is | |
150 | started, the program will attempt to make an rsh connection to the | |
151 | hostname entered under the identity given in the "rsh as username:" | |
152 | box. Note that rsh will still be used if the hostname entered does | |
153 | not match the HOST environment variable but still refers to the | |
154 | local host (eg entering "localhost" or the FQDN). Also note that | |
155 | setting up an AFS aware inetd on the remote machine requires that | |
156 | the AFS client is already running, so this feature is primarily | |
157 | intended for AFS upgrades and not first time installs. | |
158 | If the value entered into the "Hostname" box is a filename, the | |
159 | label for that box becomes "Filename". If an install is then | |
160 | started by pressing the "INSTALL" button, the entered file is read | |
161 | and each line of the file is used as a remote hostname on which to | |
162 | install AFS using rsh. | |
163 | ||
164 | PATH | |
165 | ---- | |
166 | The Path section is divided into two parts. The upper part is an | |
167 | entry box and the lower half is several default value buttons. The | |
168 | path to the distribution of AFS is entered into the upper entry | |
169 | box. When an install is started by pressing the "INSTALL" button, | |
170 | the path given is inspected, searching for signs of an AFS | |
171 | distribution. Namely, the existence of a "root.client" directory is | |
172 | used to determine if there is an AFS distribution. If the path | |
173 | given does not have an AFS distribution, the installer will also | |
174 | look for one under a directory matching the host's AFS sysname (eg | |
175 | sun4x_55) and a directory under that named "dest". If no AFS | |
176 | distribution can be found, the installation exits with an error. | |
177 | The AFS sysname is determined automatically using the output of | |
178 | /bin/uname and NOT via "fs sysname". If an installation is being | |
179 | done on a remote machine, the remote machine's AFS sysname is used, | |
180 | allowing installations on heterogeneous networks. | |
181 | The buttons in the lower half of the Path section will enter in | |
182 | path names for you into the upper entry box. By clicking on any of | |
183 | the buttons, the entry box is cleared and a new value is | |
184 | inserted. A special button "CLEAR" is automatically provided which | |
185 | simply clears the entry box. The other buttons are taken from the | |
186 | top half of the installer rc script. The lines from that file | |
187 | consist of a key word to put into the button, followed by a pathname. If | |
188 | one of the accelerator buttons has the key word "default", the | |
189 | pathname given will be entered into the entry box when the program | |
190 | starts, and no button is rendered for it. | |
191 | If the "-path" flag was given on the command line, whatever | |
192 | string followed that flag will be filled in as the default install | |
193 | path. | |
194 | ||
195 | PACKAGES | |
196 | -------- | |
197 | The Packages area is also divided into two halves. The upper half | |
198 | consists of two radio buttons which allow you to install either a | |
199 | default set of packages or a hand selected set of packages. The | |
200 | lower half lists the packages that can be hand selected, and is | |
201 | only used if the "Custom installation:" radio button is selected. | |
202 | The list of packages available is read from the lower section of | |
203 | the afsinstall.rc file. Each line consists of three parts: the | |
204 | package name (and, therefore, matching InstallGuide filename), the | |
205 | default mode for that package, and a brief explanation of the | |
206 | package. If the "Default Installation" radio button is selected, | |
207 | all those packages with a "mode" of "1" will be installed. These | |
208 | default packages are also initially selected in the "custom" | |
209 | packages area when the program starts. | |
210 | Note that the list of default packages can change from system to | |
211 | sytem, depending on which afsinstall.rc file in the | |
212 | lib/InstallGuides/ directories matches the system name on which AFS | |
213 | is being installed. Thus the default packages on the local machine | |
214 | may be different from those on remote machines if the remote | |
215 | machines are of different system types. | |
216 | If the "-pkg" flag was given on the command line when the | |
217 | installer was invoked, the list of package names provided will be | |
218 | selected and the "Custom installation" radio button will select | |
219 | itself. | |
220 | See the "INFO ONLY" button (below) for details about what each | |
221 | package does. | |
222 | New packages can be added by creating Perl subscripts in the | |
223 | InstallGuides/ directories and appending an entry to the | |
224 | afsinstall.rc file. The Install Guide subscript file is given the | |
225 | same name as the package name. Within the file is a function also | |
226 | with the same name as the package. Whatever code is within that | |
227 | function will be loaded in and executed when that package is | |
228 | installed. Several "smart" functions are available in the body of | |
229 | the installer program itself, such as &Copy(), &Symlink(), and | |
230 | &CreateDir(). Following the code of other existing Install Guides | |
231 | will show how these functions can be used. | |
232 | ||
233 | ||
234 | OPTIONS | |
235 | ------- | |
236 | There are two option buttons. The first option, labelled "Verbose" | |
237 | turns on verbose output. When selected, the installations will provide | |
238 | more output about what they are doing. Without this option, only the | |
239 | package names and error messages are output during the install. The | |
240 | second option button, "Don't keep backup files", instructs the | |
241 | installer to not keep a backup of files being overwritten. When the | |
242 | option is off, a file that is about to be overwritten will be moved | |
243 | aside by appending .old to the filename. | |
244 | Both options are off by default. The "-v" flag can be given on the | |
245 | command line to turn on the Verbose option, and the "-nobackup" flag | |
246 | will disable backup file creation. | |
247 | ||
248 | ||
249 | ||
250 | INSTALLATION | |
251 | ============= | |
252 | ||
253 | INFO ONLY | |
254 | --------- | |
255 | If this button is pressed, no installation of AFS will actually | |
256 | occur. Instead, a window appears and gives details about what each | |
257 | selected package does. The information is derived from the "info" | |
258 | subdirectory in the InstallGuides/ area. The window has a "DISMISS" | |
259 | button for when you are finished reading. | |
260 | This help guide is actually the info guide named "gui". | |
261 | ||
262 | INSTALL | |
263 | -------- | |
264 | This button begins the actual installation. When pressed, a new | |
265 | window will appear, called the Progress window. The window will | |
266 | contain a column of boxes for each machine on which an | |
267 | installation is running. Note that multiple installations is only | |
268 | available by entering a filename in the "Hostname:" box (see | |
269 | above). At the top of the column(s) will be a button labelled with | |
270 | the hostname on which the installation is running. Under the | |
271 | hostname(s) there will be a box for each package that has been | |
272 | selected. When the machine begins installation of a package, the | |
273 | box contains the word "WORKING". If an error occurs with the | |
274 | installation of that package, the box says "ERROR". Installation of | |
275 | later packages will still occur despite errors in previous | |
276 | packages. When a package completes without errors the box will | |
277 | say "SUCCESS". When the installation finishes, the last box in the | |
278 | column, labelled "done" will turn to either "SUCCESS" or "ERRORS" | |
279 | depending on the outcome of all the packages. | |
280 | Note that if the "Default installation" radio button in the | |
281 | Packages area is selected, a row of boxes will be created for ALL | |
282 | available packages. If an available package is not a default | |
283 | package for a particular machine, that box will never be filled in for | |
284 | that machine. This was done because the set of default packages can | |
285 | vary if multiple installations are in progress. | |
286 | To see the full text output of a machine's installation, press | |
287 | the hostname button at the top of the column of boxes. A window | |
288 | will appear with all of the output. A scrollbar is attached for | |
289 | when the output exceeds the height of the window. The window size | |
290 | can be changed by using the window manager. At the bottom of the | |
291 | output window will be two buttons, named "STOP INSTALL" and | |
292 | "DISMISS". The first will kill the install job on that machine, | |
293 | whether it is the local host or a remote host. this is for use when | |
294 | you see things going very wrong. The second button closes the | |
295 | output window but leaves the installation running. When the | |
296 | installation is complete the "STOP INSTALL" button is removed. If | |
297 | the output window is closed, it can be reopened again by pressing | |
298 | the hostname button again in the Progress window. | |
299 | The Progress window also has a "DISMISS" button, and if this button | |
300 | is pressed the Progress window will close itself. If there are | |
301 | installations still in progress they will be terminated, and all | |
302 | output from the installs is deleted from memory. Use this button | |
303 | only when you are satisfied with the completion of the | |
304 | installation. | |
305 | While the Progress window is still open the "INSTALL" and "INFO | |
306 | ONLY" buttons in the main window are disabled. This is a safety | |
307 | feature to prevent simultaneous installation processes on the same | |
308 | machine. Closing the Progress window will reenable the two buttons. | |
309 | ||
310 | ||
311 | EXIT | |
312 | ==== | |
313 | The EXIT button at the bottom closes all windows and exits the | |
314 | program. | |
315 | ||
316 | ||
317 | ERRORS | |
318 | ====== | |
319 | There are a few errors that are checked for and are handled in | |
320 | the installation process. Error windows will appear for a certain | |
321 | set of these errors. | |
322 | If an installation is to be performed on a | |
323 | remoted machine, and that machine does not have an AFS aware inetd | |
324 | running the rsh daemon, an error window will appear telling you | |
325 | so. | |
326 | The installation program is a Perl script that requires Perl | |
327 | 5. The path to the perl program is the very first line of the | |
328 | install program. If that path is to a Version 4 copy of Perl, an | |
329 | error window will appear telling you so. This can be fixed either | |
330 | by changing the first line of the installer or by upgrading the | |
331 | copy of Perl to at least Version 5.00. |