% 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}