|
|
1.1 ! root 1: .ls 1 ! 2: .se "Initial Installation & Parameters" ! 3: ! 4: Installation of the notesfile system requires ! 5: the following: ! 6: ! 7: .bx ! 8: .ix ! 9: A working familiarity with version 7 UNIX ! 10: (and UUCP for intersystem transfers). ! 11: .ix ! 12: The notesfile distribution tape. ! 13: .ix ! 14: A signon for the notesfile owner. ! 15: This signon should be in its own group. The notes ! 16: package runs set-gid; mixing the notes group with other ! 17: groups is not recommended. ! 18: .ix ! 19: An ``anonymous'' signon. ! 20: This signon should be an unused user-id. ! 21: The notesfile system prohibits this user-id from reading and ! 22: writing notes. ! 23: .ix ! 24: The ability to write into the directories where the notesfile ! 25: binaries and data base are to live. ! 26: .ex ! 27: ! 28: Appendix A (``Notesfile Installation Checklist'') is a helpful ! 29: guide for installing the notesfile system. ! 30: The distribution is made from a VAX running 4.2 Bsd. ! 31: In most cases there are only a few files that need to be ! 32: modified: ! 33: ``src/parms.h'', ! 34: ``src/Makefile'', ! 35: and ! 36: ``src/newsgate.h'' (if you are interfacing to USENET). ! 37: ! 38: First: read in the ! 39: distribution tape. ! 40: The tape is a TAR format tape. ! 41: This will read in several directories worth of data. ! 42: The ``src'' directory contains all source code for the notesfile ! 43: system and the internal help files. ! 44: The ``doc'' directory contains an nroff source for the user manual and ! 45: the macros that were used to generate it. ! 46: The ``man'' directory contains the nroff sources ! 47: for the ! 48: notesfile manual pages. ! 49: The ``Samples'' directory is a collection of various system files from our ! 50: machine; ! 51: they are included to provide examples in setting the matching files on ! 52: your system. ! 53: ! 54: After the tape has been read in, select the appropriate parameters. ! 55: ! 56: .ss "Selecting Appropriate Constants" ! 57: ! 58: Before compiling the notesfile system, ! 59: it must be configured to match your system. ! 60: The location of spooling directories and command directories, ! 61: the UNIX kernel, ! 62: and ! 63: policies on ``non-standard'' software ! 64: may require changes in the default configuration. ! 65: ! 66: Cofiguring the notesfile system is accomplished through ! 67: modifying two files, both in the ``src'' directory of ! 68: the distribution. ! 69: The ``parms.h'' file contains information on values for ! 70: the default archival time, ! 71: UNIX kernel type, ! 72: and ! 73: the behavior of the notesfile system such as whether ! 74: to keep core images when the notesfile system detects an ! 75: internal error. ! 76: The ``Makefile'' file contains defintions ! 77: of the spooling and command directories, ! 78: the notesfile ``owner'', ! 79: and ! 80: the ``anonymous'' user. ! 81: ! 82: The distribution is configured for a UNIX 4.2 BSD system. ! 83: The most frequently changed values, ! 84: after the kernel definition, ! 85: are the notesfile ``owner'' and the location of spooling ! 86: and command directories. ! 87: ! 88: Appendix A (``Notesfile Installation Checklist'') ! 89: details each of the options in ``parms.h'' and ``Makefile''. ! 90: It describes the meaning of the option and the effects of ! 91: changing the value. ! 92: The recommended method for choosing an appropriate configuration ! 93: is to sit at a terminal with the checklist and mark each option ! 94: as it is selected or rejected. ! 95: ! 96: .ss "Compiling the Notesfile System" ! 97: ! 98: After all the appropriate parameters are set up, the next step is ! 99: to generate the notesfile system. ! 100: First, the requisite directories and files ! 101: in /usr/bin (or wherever) should be manufactured. ! 102: This procedure should be run exactly once and will probably have to be run ! 103: by the superuser. ! 104: To make these files type: ! 105: ! 106: .nf ! 107: make base ! 108: .fi ! 109: ! 110: The next phase should be run while signed in as the notesfile ``owner''. ! 111: Type: ! 112: ! 113: .nf ! 114: make boot ! 115: .fi ! 116: ! 117: If all goes well, this should end with a message to the effect ! 118: that the notesfile system has been installed ! 119: (approximately 17 minutes on a VAX-11/780) ! 120: If anything goes wrong, perusal of the terminal dialogue should ! 121: point out the offending steps. ! 122: The most likely cause of errors will be a missing directory. ! 123: ! 124: To replace the notesfile software ! 125: any time after these two steps have been run, type: ! 126: ! 127: .nf ! 128: make install ! 129: .fi ! 130: ! 131: If at some time you are must change some of the internal constants ! 132: of the notesfile package (such as string lengths and blocking factors), ! 133: all the existing notesfiles on your system will be incompatible with the ! 134: new instantiation of the program. ! 135: The ``nfdump'' and ``nfload'' programs are useful for converting ! 136: the data base from one format to another. ! 137: The ``nfdump'' program should be compiled with the old configuration ! 138: and the ``nfload'' program should be compiled with the new configuration. ! 139: Documentation on these programs can be found in the appendices. ! 140: ! 141: .ss "User Subroutines" ! 142: ! 143: The notesfile package contains several routines available ! 144: to users in general. ! 145: The nfabort routine generates a core image, places it in a specified ! 146: place, logs the fact in a notesfile, and terminates. ! 147: The nfcomment routine allows users to log text in a notesfile. ! 148: These routines are useful for debugging information, and communication ! 149: between program developers and users. ! 150: Users can load these routines by specifying `-lnfcom' on ! 151: the `cc' or `ld' command lines. ! 152: ! 153: The normal installation procedure (``make install'') will ! 154: compile the nfcomment routine and place it in the library directory. ! 155: As distributed, the file is placed in the ``/usr/local/lib'' directory. ! 156: To change this, modify the definition of ``LIBDIR'' in `Makefile'. ! 157: ! 158: .se "Installing the Man(1) Documentation" ! 159: ! 160: Install the man(1) pages for the notesfile with the following ! 161: commands. ! 162: They are best done as super-user. ! 163: ! 164: .nf ! 165: .ne 2 ! 166: cd man ! 167: make install ! 168: .fi ! 169: ! 170: The nroff sources for the documentation will be installed in the ! 171: directory /usr/man in subdirectories man1, man3, and man8. ! 172: ! 173: .se "Interfacing to News(I)" ! 174: ! 175: The notesfile system interfaces to the news(I) ! 176: system. ! 177: The newsinput program parses articles from the news system ! 178: and inserts them in the appropriate notesfiles. ! 179: The newsoutput program moves notes from the notesfile system ! 180: to the news system. ! 181: Neither program will move text between the two systems if the notesfile ! 182: is not enabled for networking (see section 3.1.5). ! 183: Newsoutput will not retransmit articles inserted by newsinput. ! 184: Sites sharing notesfiles can all run both newsinput and newsoutput. ! 185: ! 186: Appendix B contains instructions on how to interface ! 187: a notesfile system to a news system. ! 188: Configurations for isolated notesfiles sites, notesfile subnetworks, ! 189: mapping between notesfile and newsgroup names, ! 190: and a checklist for the gateway installation are included. ! 191: ! 192: Since the notes system stores the ! 193: entire text of a single notesfile ! 194: in a single file, a notesfile system uses less space than the ! 195: same scale news system. ! 196: The notesfile system is generally more space efficient ! 197: than B news. ! 198: ! 199: .se "Housekeeping" ! 200: ! 201: Notesfiles has a number of utilities to manage it's ! 202: data base. ! 203: A number of shell scripts are included with the distribution ! 204: which invoke the archival programs and trim logging files ! 205: which otherwise grow without bounds. ! 206: These shell scripts are included in the ``Samples'' subdirectory ! 207: of the notesfile distribution and ! 208: can be invoked automatically through cron(8). ! 209: ! 210: .ss "Cleaning up Disk Space" ! 211: ! 212: When a note or response is deleted, a hole is left in that notesfile. ! 213: This makes for quick deletion but tends to leave some disk space wasted. ! 214: The compress option on the director page is one way that this space is ! 215: reclaimed. ! 216: The nfarchive program (see section 3.7.2) also returns unused space. ! 217: Have cron run the nfarchive program weekly to automate ! 218: space reclamation. ! 219: ! 220: .ss "Automatic Removal of Notes" ! 221: ! 222: The nfarchive program archives notes untouched for more than ! 223: a specified number of days. ! 224: Archived notes and their responses are stored in ! 225: an ``archive'' notesfile. ! 226: ``Archive'' notesfiles are typically found in the directory ! 227: /usr/spool/oldnotes; this may vary between installations. ! 228: The archives can be accessed automatically using the ``N'' command ! 229: from the index, note and response displays or ! 230: by explicitly naming the notesfile ! 231: (notes /usr/spool/oldnotes/mynotes). ! 232: The notes are deleted after they have been archived. ! 233: After the archival, a compression of the notesfile is performed to ! 234: recover the space formerly occupied by the archived notes. ! 235: Nfarchive assumes that all months have 30 days and all years have 12 months. ! 236: The format of the nfarchive command line is: ! 237: ! 238: nfarchive [-d] [-m+ or -m-] [-#] [-w#] [-f file] topic ! 239: ! 240: The -d option specifies that no archiving is to take place; ! 241: the notes eligible are to be deleted. ! 242: ! 243: The -m option specifies whether to check the director message ! 244: status before archiving notes. ! 245: Use ``-m+'' to archive notes which meet the age requirement and have ! 246: the director message on. ! 247: The ``-m-'' option archives notes of sufficient age with the director ! 248: message turned off. ! 249: If this option is omitted, notes are archived on the basis of age only. ! 250: ! 251: The -# option specifies the age of eligible notes. The ! 252: increment is days. ! 253: The default is determined by the value of ARCHTIME in `parms.h' and ! 254: is distributed as fourteen days. ! 255: Each notesfile can specify a (possibly) different expiration ! 256: threshold. ! 257: Normally the notesfile will specify `default' and nfarchive ! 258: uses the time specified on its command line. ! 259: Ages specified in a notesfile override the times given on the ! 260: nfarchive command line. ! 261: ! 262: The -w# parameter specifies the working set size to ! 263: use for notesfiles which do not specify a working set size. ! 264: This determines a minimum number of notes to remain in a notesfile. ! 265: If unspecified, the default working set size is 0. ! 266: This value can be changed through the WORKSETSIZE variable ! 267: in ``parms.h''. ! 268: ! 269: Working sets and expiration thresholds work together ! 270: in the following manner. ! 271: Nfarchive first determines a maximum number of notes to delete. ! 272: This is calculated from the number of notes in the notesfile ! 273: (total notes minus ``holes'' caused by deletions) ! 274: and the working set size. ! 275: The archival program proceeds through the notesfile deleting ! 276: notes older than the expiration threshold until it runs ! 277: out of notes or the maximum number of notes has been deleted. ! 278: ! 279: The -f option specifies a file containing a list of notesfiles ! 280: to be archived. ! 281: Multiple -f parameters are permitted and can be intermixed with ! 282: `topic' parameters. ! 283: Notesfile name pattern matching is performed on both `topic' parameters ! 284: and the entries in a file specified by the -f option. ! 285: ! 286: Mapping between an active notesfile and its archive is ! 287: listed in the file ``.utilities/net.aliases/Archive-into''. ! 288: This file contains pairs of ABSOLUTE notesfile names ! 289: (``/usr/spool/notes/mynotes'' instead of ``mynotes''). ! 290: The first entry specifies the active notesfile; ! 291: the second entry specifies the archive notesfile. ! 292: Notesfiles not appearing in the archive mapping file will ! 293: be placed in ``/usr/spool/oldnotes'' with the same ! 294: final component as the active notesfile. ! 295: Conflicts are possible. ! 296: If unmapped, the notesfiles ``/usr/spool/notes/mynotes'' and ! 297: ``/some/other/place/mynotes'' will be archived into ! 298: the same archive ``/usr/spool/oldnotes/mynotes''. ! 299: ! 300: .ss "Cleaning Sequencer Files" ! 301: ! 302: A tool to remove sequencer entries for deleted users will be ! 303: included in future releases of the notesfile package. ! 304: This tool will traverse the sequencer directory removing files ! 305: belonging to users whose signons no longer exist. ! 306: The process can be made automatic by including an entry in the cron table. ! 307: ! 308: A second sequencer related utility will traverse ! 309: the sequencer directory ! 310: and remove entries for deleted notesfiles. ! 311: A similar user program will be provided to permit users to remove ! 312: their sequencer entries for notesfiles that they no longer peruse. ! 313: ! 314: .ss "Additions to System Boot" ! 315: ! 316: Since the notesfile system maintains several lock files to ! 317: ensure mutual exclusion of each notesfile, a line similar to the following ! 318: should be added to the /etc/rc file. ! 319: ! 320: rm -f /usr/spool/notes/.locks/* ! 321: ! 322: Make sure `/usr/spool/notes' matches the MSTDIR parameter in the ! 323: Makefile. ! 324: This line will remove any locks left if the system has ! 325: crashed.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.