% System Installation
\rm
\hrule 
\vskip 0.2in
\section{Installation of \capa{} }

\noindent This Section describes how to install the \capa{} software.  These
instructions are written for an Alpha running Digital Unix 3.2D (OSF1).

\vskip 0.2in
\hrule 
\vskip 0.2in
%
\vskip 0.2in
%
\begin{enumerate}
\item  Log in as the super-user (root).
\item  Change Directory to /usr/sbin
\item  Enter {\tt adduser}

\item  A prompt will appear. Follow prompt to enter information about the user.  The example
used here is for the user name {\bf teacher} 
in the group {\bf cai}. 
	\begin{enumerate} 		
		\item Enter login name: {\tt teacher}
		\item Enter a UID: For most cases, using the default UID is preferable.  Just
		enter $<$return$>$
		\item Enter a full name for user: {\tt Instructor for course}
		\item Enter a login group for user: {\tt cai}
		\item Enter another group that user should be a member of. \\
		($<$Return$>$ only if none): Just enter $<$return$>$
		\item Enter a parent directory for user:{\tt /usr/user3}
		\item Enter a login shell for user:{\tt  /bin/csh}
		\item Do you wish to edit the auth file entry for this user?
		{\tt n}
		\item New password: {\tt password} \\
		{\bf NOTE:} The password
		will not be echoed to the screen.
		\item Retype new password: {\tt password}
	\end{enumerate}
\item The compressed files for the \capa\ system version 4.6 are to be placed in the
       directory \\ 
      {\tt /usr/user3/teacher/DIST46}.

\item Expand these compressed files by typing {\tt uncompress DIST46.tar.Z}

\item Untar the directories by typing {\tt tar -xvvf DIST46.tar} 
The DIST46 directory will then contain the following items:
\begingroup \small
\begin{verbatim} 
drwxr-xr-x   7 teacher  cai          512 May 21 13:41 .
drwxr-xr-x   3 teacher  cai          512 May 21 13:42 ..
drwxr-xr-x   4 teacher  cai          512 May 20 12:39 LinkToBin
drwxr-xr-x   5 teacher  cai          512 May 20 13:05 PutInCAPA46
drwxr-xr-x   2 teacher  cai          512 May 21 13:15 PutInClass
drwxr-xr-x   3 teacher  cai          512 May 20 12:59 PutInPublic
drwxr-xr-x   3 teacher  cai          512 May 20 12:34 PutInPublicWeb
-rw-r--r--   1 teacher  cai         3673 May 21 13:41 README.txt
-rw-r--r--   1 teacher  cai       880328 May 19 17:21 manual46.ps
\end{verbatim}
\endgroup
\item Print the file name README.txt.  Follow the instructions for installation.

\item  The DIST46.tar file may be recompressed and moved to another directory if you wish.
\item After completing the items included in README.txt, check the following directories for content and
permissions.  File sizes may differ.


\begingroup \small
\begin{verbatim}
capa2.nscl.msu.edu> pwd
/usr/user3/teacher/CAPA46
capa2.nscl.msu.edu> ls -la
total 1277
drwxr-xr-x   5 teacher  cai          512 Feb 25 14:41 .
drwxr-xr-x   6 teacher  cai          512 Mar  2 11:26 ..
-rw-r--r--   1 teacher  cai         2894 Feb 25 14:41 GLabel.class
drwxr-xr-x   2 teacher  cai          512 Mar 25  1997 Icons
drwxr-xr-x   3 teacher  cai          512 Feb 24 09:36 capa-bin
-rw-r--r--   1 teacher  cai         1479 Feb 27 09:32 class.html
-rw-r--r--   1 teacher  cai         1922 Feb 24 09:33 help.html
\end{verbatim}
\endgroup
\index{GLabel.class}
\item  Important: Note  that {\tt capalogin} should have permissions  
       {\tt -rwsr-xr-x }. Note specifically the {\tt s} in the fourth position. 
       It must be there for students to be able to login. 
       If it is not there,  enter the command:
       {\tt chmod u+s capalogin}. 
       (You will need to login as `root' to make this change.)
\item Check the following directories for content and permissions. File sizes may differ.
       
\begingroup \small 
\begin{verbatim}
capa2.nscl.msu.edu> pwd
/usr/user3/teacher/PublicWeb/CAPA
capa2.nscl.msu.edu> ls -lag
total 11
drwxrwxr-x   4 teacher  cai          1024 Apr 28 14:32 .
drwxrwxr-x   3 teacher  cai          1024 Apr 28 14:32 ..
-rw-rw-r--   1 teacher  cai          2894 Apr 16 09:32 GLabel.class
drwxr-x--x   2 teacher  cai          1024 Apr 28 14:36 Icons
drwxrwxr-x   3 teacher  cai          1024 Apr 28 14:39 capa-bin
-rw-rw-r--   1 teacher  cai          1336 Apr 28 15:49 class.html
-rw-rw-r--   1 teacher  cai           254 Apr 16 09:31 help.html
\end{verbatim}
\endgroup


\begingroup \small 
\begin{verbatim}
capa2.nscl.msu.edu> pwd 
/usr/user3/teacher/PublicWeb/CAPA/capa-bin
capa2.nscl.msu.edu> ls -lag
total 679
drwxr-xr-x   3 teacher  cai          512 Feb 24 09:36 .
drwxr-xr-x   5 teacher  cai          512 Feb 25 14:41 ..
-rwxr-xr-x   1 teacher  cai       606208 Feb 27 17:13 capahtml
-rw-r--r--   1 teacher  cai          112 Feb 27 09:32 class.conf
drwxr-xr-x   2 teacher  cai          512 Feb 24 09:36 teacher
-rw-rw-r--   1 teacher  cai         2986 Mar  2 12:05 web_access.log
\end{verbatim}
\endgroup

\begingroup \small 
\begin{verbatim}
capa2.nscl.msu.edu> pwd
/usr/user3/teacher/PublicWeb/CAPA/capa-bin/teacher
capa2.nscl.msu.edu> ls -lag
total 282
drwxr-xr-x   2 teacher  cai          512 May  8 16:58 .
drwxr-xr-x   8 teacher  cai          512 Jun  4 12:10 ..
-rwsr-xr-x   1 teacher  cai       278528 May  8 16:57 capasbin
\end{verbatim}
\endgroup

\item  Important: Note  that {\tt capasbin} should have permissions  
       {\tt -rwsr-xr-x } Note specifically the {\tt s} in the fourth position. 
       It must be there for students to be able to login. 
       If it is not there,  enter the command:
       {\tt chmod u+s capasbin}. 
       (You will need to login as `root' to make this change.)
       

\item Check the following directories for content and permissions. File sizes may differ.

{\footnotesize  \begingroup 
\begin{verbatim}
capa3.nscl.msu.edu> pwd
/usr/user3/teacher/Public/nsc111f8
capa3.nscl.msu.edu> ls -lag
total 2
drwxr-xr-x   2 teacher  cai  512 Feb 25 13:47 .
drwxr-xr-x   5 teacher  cai  512 Feb 27 09:33 ..
lrwxrwxrwx   1 teacher  cai   40 Feb 25 13:45 Links -> /usr/user3/teacher/CAPA46/nsc111f8/Links
lrwxrwxrwx   1 teacher  cai   43 Feb 24 09:42 pictures -> /usr/user3/teacher/CAPA46/nsc111f8/pictures
\end{verbatim}
\endgroup}

{\scriptsize \begingroup  
\begin{verbatim}
capa3.nscl.msu.edu> cd /usr/local/bin
capa3.nscl.msu.edu> ls -lag
total 18080
drwxr-xr-x  3 root  system   2560 Feb 27 10:48 .
drwxr-xr-x 13 root  system    512 Feb 18 11:37 ..
-rw-r--r--  1 root  users    9116 Feb 27 10:47 CAPAscreen.pl
lrwxrwxrwx  1 root  system     32 Feb 24 09:26 allcapaid -> /usr/user3/teacher/DIST46/LinkToBin/allcapaid
lrwxrwxrwx  1 root  system     39 Feb 27 10:42 capautils.pl -> /usr/user3/teacher/DIST46/LinkToBin/capautils.1.0.pl
lrwxrwxrwx  1 root  system     31 Feb 24 09:20 grader -> /usr/user3/teacher/DIST46/LinkToBin/grader
lrwxrwxrwx  1 root  system     32 Feb 24 09:20 quizzer -> /usr/user3/teacher/DIST46/LinkToBin/quizzer
lrwxrwxrwx  1 root  system     30 Feb 24 09:27 qzparse -> /usr/user3/teacher/DIST46/LinkToBin/qzparse
\end{verbatim}
\endgroup}


\item Create an account for the class which will be using
\capa\ .  Do this by adding the
class as a separate user with a specific login shell.  The login name for the class is the same as the class name.  In the directory
/usr/sbin, enter {\tt adduser}
	\begin{enumerate} 		
 		\item Enter login name: {\tt nsc111f8}
 		\item Enter a UID: Using the default UID is preferable.  Just
 		enter $<$return$>$
		\item Enter a full name for user: {\tt Course Name}
		\item Enter a login group for user: {\tt cai}\\ 
		{\bf NOTE:}  The
		group for the course {\bf must} be
		the same as the instructor for the course.  For all examples we use {\tt teacher} as instructor and {\tt cai} as group.
		\item Enter another group that user should be a member of. \\
		($<$Return$>$ only if none):
		Enter $<$return$>$
		\item Enter a parent directory for user:{\tt
		/usr/user3/teacher/CAPA46}
		\item Enter a login shell for user:{\tt 
		/usr/user3/teacher/CAPA46/capalogin}
		\item Do you wish to edit the auth file entry for this user?
		{\tt n}
		\item New password: {\tt password} \\ 
		{\bf NOTE:} The password
		will not be echoed to the screen.
		\item Retype new password: {\tt password}
	\end{enumerate} 		
\item The password file must now be edited to remove the class password. 
To do this:
	\begin{enumerate}
	\item cd to /usr/sbin 
	\item Enter {\tt vipw} \footnote{{\tt vi} editing is best left to users
	familiar with {\tt vi}} 
	\item Use the arrow keys to position the cursor over the first letter of
	the encoded password for the class
	user name.  For example, a typical password file entry looks like
	this:\\
	\hspace*{-.6in}{\tt \scriptsize 
	nsc111f8:3ou7NE4pQTMTw:4347:26:Nat.Sci.111 Fall 1997:/usr/user3/teacher/CAPA46/nsc111f8:/usr/user3/teacher/CAPA46/capalogin}
	Note that the fields are separated by colons.  The description of the
	fields is as follows:\\
	{\tt username:password:UID:GID:Full Name:/Parent/Directory:/Login/shell}
        \item Remove the password from this listing.  Do this by
        positioning the cursor over the
        first letter (or character) of the password field, then delete by
        pressing the x key.  Exit the vi
        editor by typing {\tt :wq}  The modified listing should then look like: \\
	\hspace*{-.6in}{\tt \scriptsize nsc111f8::4347:26:Nat.Sci.111 Fall 1995:/usr/user3/teacher/CAPA46/nsc111f8:/usr/user3/teacher/CAPA46/capalogin}
	\end{enumerate}
\item Exit the root account and login as {\tt teacher}

\item  Look in the {\tt teacher}: {\tt cd /usr/user3/teacher/CAPA46}.
\item  Type: {\tt ls -lag}\\ 
       The last files in the  {\tt teacher} directory,  
        , will look like: (Again, file sizes may differ.)\\
\begingroup \small 
\begin{verbatim}
drwxr-xr-x   6 teacher  cai          512 Mar  8 19:32 CAPA46
drwxr-xr-x   5 teacher  cai          512 Mar  5 16:37 Public
drwxr-xr-x   4 teacher  cai          512 Mar  6 09:56 PublicWeb
drwxr-xr-x   4 teacher  cai          512 Mar  5 16:37 bin
drwxr-xr-x  17 teacher  cai          512 Mar  5 18:30 demolibrary
\end{verbatim} 
\endgroup

\item  Change directory to {CAPA46}: {\tt cd /usr/user3/teacher/CAPA46}.
\item  Type: {\tt ls -lag}\\ 
       The last files in the  {\tt teacher/CAPA46} directory,  
        , will look like: (Again, file sizes may differ.)\\
\begingroup \small 
\begin{verbatim}
drwxr-xr-x   2 teacher  cai         3584 Mar  8 19:30 MCTools
drwxr-xr-x   2 teacher  cai          512 Mar  5 20:47 Tools
-rwsr-xr-x   1 teacher  cai       606208 Feb 27 17:14 capalogin
drwxr-xr-x   9 teacher  cai         1536 Mar  8 21:38 nsc111f8
\end{verbatim} 
\endgroup

       
       
       
\item  Change directory to the sample class: {\tt cd /usr/user3/teacher/CAPA46/nsc111f8}.
\item  Type: {\tt ls -lag}\\ 
       The last files in the  {\tt teacher/CAPA46/nsc111f8} directory,  
        , will look like: (Again, file sizes may differ.)\\
\begingroup \small 
\begin{verbatim}
drwxr-xr-x   9 teacher  cai         1024 Mar  2 11:00 .
drwxr-xr-x   6 teacher  cai          512 Mar  1 18:03 ..
drwx------   2 teacher  cai          512 Feb 25 13:52 ASCII
drwx------   2 teacher  cai          512 Feb 26 19:40 HTML
-rw-r--r--   1 teacher  cai         1245 Feb 26 20:23 HWTop
-rw-r--r--   1 teacher  cai         4289 Mar  1 16:32 Instructions.tex
drwxr-xr-x   2 teacher  cai         1024 Mar  1 13:36 TeX
-rw-r--r--   1 teacher  cai           21 Feb 26 14:05 TeXfooter
-rw-r--r--   1 teacher  cai          665 Feb 26 14:05 TeXheader
-rw-r--r--   1 teacher  cai         6455 Mar  1 15:30 capa.config
drwx------   2 teacher  cai         1024 Feb 26 09:18 capaID
-rw-r--r--   1 teacher  cai          474 Feb 28 16:12 classl
-rw-r--r--   1 teacher  cai           77 Mar 25  1997 goodbye.msg
-rw-r--r--   1 teacher  cai          720 Mar 24  1997 help.msg
-rw-r--r--   1 teacher  cai        65932 Apr 29  1997 loginWindow4.1.eps
drwxr-xr-x   2 teacher  cai         1024 Feb 26 18:57 pictures
drwxr-xr-x   2 teacher  cai          512 Mar  1 20:10 records
-rw-r--r--   1 teacher  cai          355 Mar 24  1997 second-login.msg
-rw-r--r--   1 teacher  cai         7495 Mar  2 11:58 set1.qz
-rw-r--r--   1 teacher  cai          293 Sep 28  1994 third-login.msg
-rw-r--r--   1 teacher  cai          233 Feb 26 19:24 welcome.msg
\end{verbatim} 
\endgroup
{\bf Note:}  Each class added to the system must contain the records directory (created by the instructor).  The
{\tt capa.config, classl, TeXheader}, and {\tt TeXfooter} are required files.  All .msg files contain useful information
for the students and can be edited to suit the instructors' needs. The {\tt HWTop} is useful in formatting the
assignment printed page and can also be edited.  The  {\tt pictures} directory is specific to the sample
class included in this distribution.

\item  Change to the records directory: {\tt cd records}    

\item  Type:  {\tt ls -lag}\\
       The directory may be empty.  However, after
       you have run {\tt quizzer} and students have logged in, several database
       files will be automatically created.  The last files in this directory will
       eventually look like:\\
\begingroup \small 
\begin{verbatim}
drwxr-xr-x   2 teacher  cai          512 Mar  1 20:10 .
drwxr-xr-x   9 teacher  cai         1024 Mar  2 11:00 ..
-rw-r--r--   1 teacher  cai         1716 Mar  2 12:10 active.log
-rw-r--r--   1 teacher  cai         5254 Mar  2 12:10 duration.db
-rw-r--r--   1 teacher  cai         1904 Feb 28 18:48 log1.db
-rw-r--r--   1 teacher  cai         1093 Mar  1 20:26 set1.db
-rw-r--r--   1 teacher  cai         1440 Feb 28 18:48 submissions1.db
-rw-r--r--   1 teacher  cai         1232 Mar  1 20:26 weblog1.db
-rw-r--r--   1 teacher  cai         2451 Mar  1 20:26 websubmissions1.db
\end{verbatim} 
\endgroup
%
\item  \underline{Important:}  Check that the permissions and user-ownership of the files
 are the same as those in the examples above.  If the group shown is not {\tt
 cai}, then change the working directory to {\tt
 teacher/CAPA46} by typing: {\tt cd /usr/user3/teacher/CAPA46} and then {\tt chgrp -R cai *} 
 to change the group of all the files.  Similarly,  if the owner shown is not
 {\bf teacher}, then change the working directory to {\tt teacher/CAPA46} by
 typing: {\tt cd /usr/user3/teacher/CAPA46} and then {\tt chown -R teacher *} to change the
 owner of all the files in the {\tt CAPA46} directory and subdirectories.  Also double check that {\tt capalogin} and {\tt capasbin} have set UID permission.

\item  Note: If you have created user IDs for classes in addition to {\tt nsc111f8},
they will appear as subdirectories in {\tt teacher/CAPA46/}. The ownership and group should be teacher
and cai as well. The same prototype files and folders as in 
{\tt teacher/CAPA46/nsc111f8} must be placed in each sub-directory ( copy and edit them as needed). 
%

\item  Some notes:
  \begin{enumerate}
    \item  The \LaTeX{} and dvi programs must be properly installed on the host
      machine in order for {\tt quizzer} to format the problem sets. 
      See your system administrator for help in installing these programs.  
     \item  For a broad range of terminal emulators to be able to access the
      system\footnote{by G. Perkins, MSU P/A Dept.}, it is necessary to modify the
      {\tt /etc/termcap} file  to accommodate the appropriate vt100 \label{vtEmul}
      terminal attributes, including handling non-standard nomenclature used by
      terminal emulation programs on Macs and PCs.  A notable example is the widely
      used {\it tn} program that is part of FTP Software, Inc.'s PC/TCP package. This
      program negotiates its terminal type with the host computer using the prefix
      {\tt dec-}
      for the {\tt vt} family of terminals ({\it e.g.,} it requests terminal type
      {\tt dec-vt100} instead of {\tt vt100}). This prefix, if unknown to the Unix
      host, may cause the negotiation to result in an incorrect terminal type or to
      fail completely.  \\
      The line in the standard {\tt /etc/termcap} file that reads\\ \\
      {\tt d0|vt100|vt100-am|vt100am|dec vt100:$\backslash$ } \\ \\
       should be edited  to read:\\ \\
      {\tt d0|vt100|vt100-am|vt100am|dec-vt100|dec vt100:$\backslash$ } \\ \\
      thereby establishing {\tt dec-vt100} as an official synonym for {\tt vt100}.
      Note that the ``{\tt dec-vt100}'' entry is different from the ``{\tt dec vt100}''
      entry.  We advise adding the new alias rather than changing the existing alias
      and possibly causing other problems.
      A similar change can be made on other operating systems which use the
      {\tt /etc/termcap} method of terminal definition.  Unix systems using the
      {\it terminfo} program instead will support similar minor changes to the
      appropriate file or files in the {\tt /usr/lib/terminfo} directory tree (consult
      your system administrator for details). Be prepared to make similar changes in
      case other terminal emulation programs at your site use their own non-standard
      terminal type nomenclature.
  \end{enumerate}
\item  The \capa\ system should now be completely installed.  You may start writing
problem sets, but we recommend reading the system description and taking the
guided tour.
\end{enumerate}

\newpage

The whole package for NeXTstep Operating system is essentially the same 
as described previously, the difference in applications is that
Quizzer and Grader are named Quizzer.app and Grader.app respectively. 
The following items describe how to create an account 
on the NeXTStep Operating system, Version 3.3.

\begin{enumerate}
\item  Log in as the super-user (root).
\item Create a new user group called {\tt cai}. Use the menu obtained from opening the file\\ {\tt /NextAdmin/UserManager} in the File Viewer and double-clicking on  its icon.
	\begin{enumerate} 		
		\item select   {\bf Group}
		\item select   {\bf New} to create a new user group
		\item In the domain window, click {\bf OK}
		\item type  {\bf cai} in the group name field
		\item select {\bf Save} to save the user group
	\end{enumerate}
\item Create an Instructor account called {\tt teacher}, using the menu of {\tt /NextAdmin/UserManager}:
	\begin{enumerate} 		
 		\item select   {\bf User}
 		\item select   {\bf New}
		\item select   {\bf Local}  as user type
		\item select   {\bf Groups}
		\item select  {\bf cai}  in the User Group Info window
		\item set default group as {\bf cai}
		\item select   {\bf Long Form}
	        \begin{enumerate} 		
                  \item {\bf User's Full  Name}:  ( i.e., instructor's full name or another description, such as \capa\ Instructor)
	          \item{\bf Username}:  teacher 
	          \item{\bf Password}: (enter a password), case sensitive
	          \item{\bf User ID}: (A number selected by the operating system)
                  \item{\bf Home Directory}:  /teacher
	          \item{\bf Login Shell}:   /bin/csh
	        \end{enumerate}
		\item  select {\bf Save} in the menu; follow the instructions, verify password. 
		\item  select  {\bf Yes}  to create a home directory, then  wait for the save to be completed.
	\end{enumerate}
\item Create an account that will be used by the students in the class to login called {\bf nsc111f8}
       \begin{enumerate}
	 \item Locate the file {\tt /etc/shells}  in the File Viewer.  Double-click its icon to open the file with {\tt Edit.app}.  This will enable you to edit the file, so that the code {\tt /teacher/CAPA46/capalogin} acts as a valid Login shell under UNIX.  To complete this:	
         \begin{enumerate}
	   \item Add the line below to the  {\tt /etc/shells} file:\\
              {\tt /teacher/CAPA46/capalogin}\\
              {\footnotesize (with a $<$CR$>$ at the end)}
           \item select {\bf Save} in the menu. 
         \end{enumerate}
	 \item Continuing with   {\tt /NextAdmin/UserManager}
         \begin{enumerate}
		\item  select   {\bf New User}
		\item  select   {\bf Local}  as user type
		\item  select   {\bf Groups}
		\item  select  {\bf cai}  in the User Group Info window
		\item  set default group as {\bf cai}
		\item  select   {\bf Long Form}
             \begin{enumerate}
                    \item {\bf User's Full  Name}:  ( i.e., Natural Science Students Fall 1998)
	            \item {\bf Username}: {\it classname} (here enter: nsc111f8)
	            \item {\bf Password}: (none, just hit return)
	            \item {\bf User ID}: (a number selected by the operating system)
                    \item {\bf Home Directory}:  {\it teacher sub-directory} (here enter :   /teacher/CAPA46/nsc111f8)
	            \item {\bf Login Shell}:   /teacher/CAPA46/capalogin   (this specification is the one that limits student access)
	     \end{enumerate}
		\item  select {\bf Save} in the menu;  a warning message may appear
		\item  select {\bf OK}, check values. 
		\item  To the prompt:  {\bf Create User  Home Directory}, say {\bf No}.  \\ This is very important;  Students do not get file space. 
	        \item {\bf Quit} UserManager
	\end{enumerate}
      \end{enumerate}
\item Return to the file {\tt /etc/shells}
\item Edit the file by removing the line\\ {\tt /teacher/CAPA46/capalogin}  \\ {\footnotesize Note:  This allows students to login but only under the restrictions placed by the  {\tt capalogin} code.  Otherwise,  students (i.e., user {\it nsc111f8}) could login on your computer and see or modify all the files in teacher that have group read/write permission.}
\item select {\bf File/Save}
\item select {\bf File/Close}
\item {\bf Quit} Edit
\item Several  {\bf Username}  sub-directories which students  use to login and that hold all of the necessary files 
             can be placed under the teacher account, just as was done for nsc111f8 above,  i.e.,  
             phy232f8, cem152f8, xph232f8, etc. 
\item {\bf logout} as root.
\end{enumerate}




