BSD 2 development
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Thu, 10 May 1979 03:45:51 +0000 (19:45 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Thu, 10 May 1979 03:45:51 +0000 (19:45 -0800)
Work on file install.ms

Synthesized-from: 2bsd

install.ms [new file with mode: 0644]

diff --git a/install.ms b/install.ms
new file mode 100644 (file)
index 0000000..afd0f17
--- /dev/null
@@ -0,0 +1,392 @@
+.if n .nr LL 7i
+.TL
+Second\ Distribution\ of\ Berkeley\ Software\ for\ UNIX\(dg
+.sp
+Installation\ Instructions
+.PP
+.FS
+\(dg UNIX is a trademark of Bell Laboratories.
+.FE
+By following the directions here you
+should be able to bring up the software on the tape in a very short
+period of time, ranging from an hour (if you have a standard version 6
+system and can use the precompiled binaries), to about 6 hours (if you
+have a version 6 or 7 system which requires recompilation.)
+.SH
+Extracting the tape
+.PP
+To extract the tape you will need a 800 BPI tape drive and a file system
+with 12000 blocks of free space.  If your tape was written with \fItar\fR
+or \fIcpio\fR, then extracting the tape is straightforward.
+If it was written with \fItp\fR (the default) then some work
+will be required to fully unpack the tape.  Unless you will be
+using \fItp\fR here skip the next paragraph.
+.PP
+First extract the file \fBcreate\fR from the tape by doing:
+.DS
+tp xm ./create
+.DE
+This is a shell script of \fBmkdir\fR commands.  Run the script and then
+do
+.DS
+tp xm
+.DE
+This will take several minutes.  When it completes, you will have a skeletal
+tape.  In most directories on the tape will be a file \fBcont.a\fR
+which is an archive of the contents of that directory.
+The best thing to do is to unarchive all the files so you can look
+at things easily.  The find command
+.DS
+find . \-name cont.a \-a \-print
+.DE
+will print the names of all the \fBcont.a\fR files.  For each such file,
+change into its directory and do
+.DS
+ar x cont.a
+rm cont.a
+.DE
+You can omit the \fBrm\fR if you have tons of space.
+If you have a very old \fIar\fR, you may have to use the \fIar\fR in
+\fBmisc\fR.
+.bp
+.SH
+Installation Preparation
+.PP
+The first thing to determine is which version of \s-2UNIX\s0 you are running,
+and how much impact modifications you have made to the system will have
+on the software here.  
+.SH
+Version 7
+.PP
+This is the new version of \s-2UNIX\s0 which has just been released by Bell
+Laboratories.  Most of the software here has been running on version 7 for
+several months at Berkeley.
+.PP
+The binaries on the distribution tape will NOT run on version 7, as
+they were compiled on a \s-2PDP\s0-11 version 6 system.  Thus you must
+recompile from the source for a version 7 system.  This will not be
+hard since almost all of the software thinks it is running on version
+7.  The one exception is the Pascal system, which has not been run on
+version 7 (since we don't have version 7 on our \s-2PDP\s0-11s yet).  
+.SH
+Version 6
+.PP
+If you have a standard version 6 \s-2UNIX\s0 system then you can just use
+the binaries on the tape and avoid the bother of recompiling.  In fact,
+unless you have a late-model C compiler
+compilation may be troublesome or impossible.
+.PP
+On a ``standard'' system the \fIgetuid\fR system call returns
+the user id in the low byte of its result word.  If this is
+the case on your system, then you should have no trouble installing the
+binaries supplied.\(dg
+.FS
+\(dg I have compiled the code here with a library which uses ``sys sleep''
+to implement \fIsleep()\fR, rather than the later, more efficient sleep
+implementation using new system calls pause and alarm.  If you have the
+latter, you can recompile programs which sleep if you wish.
+.FE
+.SH
+Other Version 6
+.PP
+If you have a version 6 \s-2UNIX\s0 system which has 16 bit user id's (such as
+the systems at Berkeley) then you will have to modify the \fBupgrade/libretro\fR
+version 7 simulator library and recompile the programs here.
+.PP
+If you have a \s-2PWB\s0/\s-2UNIX\s0 system, the binaries supplied here should work
+(as far as I know).  If they don't the \fImake\fR and \fIcc\fR from \s-2PWB\s0
+should be adequate to recompile to repair any problems.
+.bp
+.SH
+New files to be added.
+.PP
+The following are the major files and directories
+which will be created as you install the tape:
+.de BP
+.IP \fB\\$1\fR 28
+..
+.BP /bin/csh
+This is the new shell.  It is not placed in
+the directory \fB/usr/ucb\fR because it is often linked to \fB/bin/makesh\fR,
+which is on a different file system than \fB/usr/ucb\fR on
+most systems.
+.BP /etc/htmp
+For version 6 systems, this forms a data base which simulates
+version 7 environments, storing home directories and (most
+importantly) terminal types for each terminal.
+.BP /etc/termcap
+This is a data base describing terminals, and is used by the \fIex\fR editor,
+and the \fItset\fR program.
+.BP /etc/ttytype
+This file maps terminal ports to their types, and indicates which
+ports are not hard wired.  The
+.I tset
+program uses this to initialize the terminal type at login.
+.BP /usr/include/retrofit
+On version 6 systems, a directory of header files used to simulate version
+7 \s-2UNIX\s0.
+.BP /usr/lib/Mail.help*
+Help files for \fIMail\fR.
+.BP /usr/lib/Mail.rc
+A startup file for \fIMail\fR.
+.BP /usr/lib/ex2.0preserve
+Preserve command for \fIex\fR.
+.BP /usr/lib/ex2.0recover
+Recover command for \fIex\fR.
+.BP /usr/lib/ex2.0strings
+Error messages for \fIex\fR.
+.BP /usr/lib/how_p*
+Help files for Pascal.
+.BP /usr/lib/libretro.a
+Library simulating some version 7 calls on version 6.
+.BP /usr/lib/libtermlib.a
+Library providing terminal independent functions.
+.BP /usr/lib/me
+[Directory]
+The dynamically loaded parts of the \fI\-me\fR macros are placed here.
+.BP /usr/lib/pi1.2strings
+Error messages for \fIpi\fR, the Pascal translator.
+.BP /usr/lib/pi1:2strings
+Messages for two process \fIpi\fR for 34's and 40's.
+.BP /usr/lib/pi1
+Second pass of two process \fIpi\fR translator.
+.BP /usr/lib/*px_header
+Header files which \fIpi\fR prepends to \fIobj\fR files.
+.BP /usr/lib/tabset
+[Directory] Terminal initialization files for \fItset\fR.
+.BP /usr/lib/tmac.e
+The \fI\-me\fR macros themselves, on version 6 systems.
+.BP /usr/lib/tmac/tmac.e
+The \fI\-me\fR macros themselves, on version 7 systems.
+.BP /usr/msgs
+[Directory]
+The \fImsgs\fR program places messages here.
+.BP /usr/preserve
+[Directory]
+Editor temporaries are preserved here after system crashes.
+.BP /usr/ucb
+[Directory]
+Most of the binaries on the tape are placed here.
+They can be linked elsewhere (i.e. \fB/usr/bin\fR) but
+the makefiles which create the tape software expect
+them in \fB/usr/ucb\fR so they should be left there also.
+.bp
+.SH
+Installation procedure.
+.PP
+Now follow the following procedure:
+.IP 1.
+Run the \fBsetup\fR script in this directory to create needed files
+and directories.
+.IP 2.
+If you have a version 6 system then run the \fBinstall\fR script in the
+directory \fBupgrade/include\fR to put a copy of the retrofitting header
+files in \fB/usr/include/retrofit\fR.
+.IP 3.
+If you have a standard version 6 system (with 8 bit user id's) then
+run the \fBinstall\fR script in the directory
+\fBbin\fR on the tape.  Then skip to step 6.
+.IP 4.
+If you have a non-standard version 6 system which uses 16 bit user-id's
+or has other modifications which would destroy binary compatibility,
+then:
+.RS
+.IP a.
+Look at the retrofit library source directory \fBupgrade/libretro\fR and make
+needed changes.  Recreate the library and install it.
+If you have \fImake\fR you can use the \fBmakefile\fR; otherwise
+use your shell with \fBmake.script\fR.
+.IP b.
+Recompile the termlib library \fBsrc/termlib\fR, using \fBmakefile.v6\fR
+and ``make install'', or the shell script \fBmake.script\fR
+if you don't have \fImake\fR.
+.IP c.
+Recompile the programs in \fBupgrade/src\fR using \fBmake.script\fR
+or \fBmakefile\fR.  These are versions
+of some programs in \fBsrc\fR which are different for version 6.
+.IP d.
+Follow the rest of the instructions for making a version 7
+compilation, using \fBmakefile.v6\fR or \fBmake.script\fR whenever
+they exist rather than \fBmakefile\fR.
+(You can skip part \fIa\fR since you have done it already.)
+.RE
+.IP 5.
+If you have a version 7 system:
+.RS
+.IP a.
+Run \fImake\fR in \fBsrc/termlib\fR, since this makes an important
+library which you will need right away.
+.IP b.
+Then start in the \fBsrc\fR directory, and run \fImake\fR there and
+then in each subdirectory (see below).  Look at the \fBREAD_ME\fR files in
+each directory to get an idea of what is going on.  After
+creating the binaries ``make install'' will install them in \fB/usr/ucb\fR.
+Some makefiles also install things in \fB/usr/lib/\fR or \fB/etc\fR; use
+``make \-n'' to see what \fImake\fR will do.
+.IP
+The following is a reasonable order to do the subdirectories in:
+(omitting Pascal for now):
+.DS
+Mail, csh, ex, me
+.DE
+.IP c.
+Install the Pascal system.  Some of the parts of the Pascal
+system will require special treatment on version 7 as they
+use the older i/o library of version 6.  See the file \fBmisc/v7pascal\fR
+for more details.
+.IP
+It is not necessary to
+compile \fBeyacc\fR or to run \fIeyacc\fR in the \fBpi\fR and
+\fBpxp\fR directories; rather just use the supplied \fBy.tab.c\fR files.
+(The supplied \fBmakefile\fRs don't run \fIeyacc\fR.)
+.IP d.
+Now prepare the utilities for the Pascal system in the
+directory \fBpascal\fR.  Then prepare the Pascal translator \fBpi\fR,
+the interpreter \fBpx\fR and, finally, the profiler \fBpxp\fR.
+.IP
+If you have a non-separate I/D machine, or if you do not have
+hardware floating point, then prepare \fBpi0\fR and
+\fBpi1\fR rather than \fBpi\fR, and use the \fBpx34\fR and \fBpxp34\fR
+(NOID) versions of \fIpx\fR and \fIpxp\fR.\(dg
+.FS
+\(dg You can run \fIpi\fR (instead of \fIpi34\fR from \fBpi0\fR and \fBpi1\fR)
+on a non-floating point machine with separate
+I/D by adding a system call to simulate a mfpi instruction
+(see \fBmisc/fetchi.sys\fR).
+This \fIpi\fR will run slightly faster, and allow slightly larger programs
+to be written.
+.FE
+You should, on these machines:
+.DS
+mv /usr/ucb/pi34 /usr/ucb/pi
+mv /usr/ucb/px34 /usr/ucb/px
+mv /usr/ucb/pxp34 /usr/ucb/pxp
+.DE
+.RE
+.IP 6.
+Install the manual sections in \fBman\fR copying them to \fB/usr/man/manu\fR.
+If you have version 6, follow the instructions in \fBupgrade/man\fR
+on adapting to the different manual macros used.
+.IP 7.
+Add a line of the form
+.DS
+/usr/lib/ex2.0preserve \-a
+.DE
+to the file \fB/etc/rc\fR, before it cleans files out of \fB/tmp\fR.  This
+will preserve the editor temporaries from \fB/tmp\fR after system crashes,
+and implements the editor crash recovery mechanism.\(dg
+.FS
+\(dg If \fB/usr\fR is a mounted filesystem, be sure it is mounted before
+you try to run \fB/usr/lib/ex2.0preserve\fR.
+.FE
+.IP 7.
+So that the \fImsgs\fR program can receive messages which are sent via
+.B mail
+change, change your mail program to execute
+``/usr/ucb/msgs \-s''
+with the message on the standard input whenever mail is sent to ``msgs''.
+A version 6
+.B mail
+program which does this is in
+``mail.c''
+in the directory \fBmisc\fR.
+.IP 8.
+Make sure that the programs \fB/usr/lib/ex2.0preserve\fR and
+\fB/usr/lib/ex2.0recover\fR can write the directory \fB/usr/preserve\fR.
+For security, these programs should be owned by ``root'', mode 4755,
+and the directory \fB/usr/preserve\fR should be mode 755.
+.IP
+The programs \fB/usr/ucb/setenv\fR and \fB/usr/ucb/tset\fR must
+be able to write \fB/etc/htmp\fR.  It is wise to have \fB/etc/htmp\fR
+mode 644 and \fBsethome\fR and \fBttytype\fR mode 4755 to a user who
+owns \fB/etc/htmp\fR (this doesn't have to be ``root'', but it can).
+.IP 9.
+Initialize the \fB/etc/ttytype\fR data base with the types of the terminals
+on your system.  The file contains one line per terminal.  On version
+6, each line has the (one character) terminal name, and then a 2 character
+code.  On version 7 each line has a two character code, a space, and
+then the (arbitrary length) terminal name.  See \fBmisc/ttytype.v6\fR
+and \fBmisc/ttytype\fR for samples.  The codes are defined by the file
+\fB/etc/termcap\fR.
+.IP 10.
+Initialize the Mail file \fB/usr/lib/Mail.rc\fR defining any \fIalias\fR
+groups for distribution of mail you wish.  A line of the form
+.DS
+alias staff bill kurt eric
+.DE
+will cause ``Mail staff'' to send copies to \fIbill\fR, \fIkurt\fR, and
+\fIeric\fR.
+.SH
+Software not installed by the above procedure
+.PP
+The modifications to the standard i/o library \fBsrc/libNS\fR,
+the Berkeley network \fBsrc/net\fR, and the
+\fIfinger\fR program \fBsrc/finger.c\fR are not installed by
+the above procedure.
+.PP
+The standard I/O library modifications may require some care to make
+as several slightly different versions of this library are extant.
+See the \fBREAD_ME\fR file in the \fBsrc/libNS\fR directory.
+.PP
+If you wish to run the Berkeley network, read the material in the
+\fBsrc/net\fR directory.  The network is not hard to set up, but
+this will require a bit of preparation.
+.PP
+The \fIfinger\fR program requires preparation of some data bases,
+and perhaps modifications to the \fIlogin\fR program as well as to
+\fIfinger\fR itself to work.  See the comments at the beginning
+of the program \fBsrc/finger.c\fR and its manual page for details.
+.SH
+Problems you may encounter (Version 6 only)
+.IP 1.
+Recompiling the editor will overflow the standard compiler symbol table.
+See \fBupgrade/c\fR for instructions on a trivial change to make a C compiler
+with a bigger symbol table, which you can make available via the \fB\-t0\fR
+flag to \fBcc\fR.  Some scripts on the tape also reference a \fB\-t1\fR version
+of the C compiler, which puts \fIswitch\fR statement code out as instructions
+rather than as data.  This makes for programs with larger text spaces but
+smaller per-user data.  See \fBupgrade/c\fR for the C compiler change which
+implements this.
+.IP 2.
+If you use the binaries on the tape, some will print times in Pacific time.
+They will work in your time zone if you recompile them.
+.IP 3.
+\fICsh\fR uses an \fIaccess\fR system call which is not part of a
+bare version 6 system.  Its manual page and C interface are in the
+directory \fBmisc\fR, as well as a file \fBaccess.sys\fR containing information on how
+to add it to your system.  The \fIaccess\fR call is in later version 6
+and version 7 systems.
+.IP 4.
+If you don't get mail in the file ``.mail'' in your login
+directory you'll have to finagle the \fIMail\fR
+program to know where you do.  Look at its \fBlocal.c\fR and \fBlocal.h\fR
+files.  The \fIfrom\fR program in \fBupgrade/src\fR
+will also have to be changed.
+.IP 5.
+If you have changed the \fItimes\fR system call as per 50
+changes, returning long integers for \fIproc_user_time\fR and
+\fIproc_system_time\fR, the supplied \fIcsh\fR binary will
+dump when it calls \fItimes\fR.  You'll have to change some declarations
+in the shell and recompile.
+.SH
+Maintenance
+.PP
+.BP /etc/termcap
+If you get have or get terminals which aren't described
+in this data base, you will have to add entries.
+The manual page for \fItermcap\fR explains how to write new entries.
+.BP /etc/ttytype
+This file tells the types of hardwired ports and which
+lines are dialups, and is used with \fItset\fR.  It must
+be edited when the system configuration changes.
+.BP /usr/preserve
+Editor temporaries are saved here after a system crash,
+when /usr/lib/ex2.0preserve is run out of /etc/rc.
+If no one cleans this directory out, it can get very
+large.  You can periodically run a find command of the form
+.DS
+find /usr/preserve \-mtime +7 \-a \-exec rm \-f {} \e;
+.DE
+to clean out old junk.  It is usefully run by the daemon \fIcron\fR.
+.BP /usr/msgs
+Must be cleaned out periodically (every few months).