home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / news / nn.tar / nn-6.5.1 / olddocs / doc / INSTALLATION next >
Text File  |  1995-04-29  |  23KB  |  670 lines

  1.          CONFIGURATION AND INSTALLATION OF NN
  2.          ------------------------------------
  3.  
  4.                  RELEASE 6.5
  5.  
  6.  
  7. This file describes the necessary steps to configure and install nn.
  8. You are advised to read this file before proceeding with the installation.
  9.  
  10. NOTE:    The configuration and installation has changed significantly
  11. =====    from previous releases, so read these instructions carefully
  12.     even if you are familiar with previous releases of nn.
  13.  
  14. If you want to use NNTP (accessing news from a remote host), you must
  15. also read the file NNTP.
  16.  
  17. The files RELEASE_NOTES and PROBLEMS contains descriptions of problems
  18. previously seen when installing nn.  If you run into a problem,
  19. consult that file before griping about it.  The file FAQ contains the
  20. latest version of the Frequently Asked Questions document that appears
  21. regularly in news.software.nn; it contains a wealth of information for
  22. nn maintainers and users alike.
  23.  
  24. The following command line prompts are used in the examples:
  25.    `$' is used when no special privileges are required.
  26.    `#' is used when SUPER USER privileges may be required.
  27.  
  28.  
  29.                 STEP 1
  30.  
  31.           CREATE CONFIGURATION FILE config.h
  32.           ----------------------------------
  33.  
  34. The configuration file is distributed in the file config.h-dist.  You
  35. must COPY this to config.h before proceeding.  Keep the original -dist
  36. file to allow patches to be applied to it if necessary.
  37.  
  38.     $ cp config.h-dist config.h
  39.  
  40.  
  41.                 STEP 2
  42.  
  43.          EDIT config.h TO REFLECT YOUR SYSTEM
  44.          ------------------------------------
  45.  
  46. For each required configuration parameter, the config.h file contains
  47. verbose comments explaining the meaning of each parameter in the file.
  48. Read and follow these instructions carefully.  If you do that, nn
  49. should compile and run without problems.
  50.  
  51. Further information about the parameters can be found below in case
  52. you are in doubt.  Regarding the NNTP related definitions, consult the
  53. file named NNTP.
  54.  
  55. Notice that every time you edit config.h, the file update.h is
  56. modified to make a new configuration level for the version in the
  57. source directory.  The current configuration is showed in the version
  58. string as #number.
  59.  
  60. Finally, a single config.h can be used even if you maintain nn on
  61. several platforms.  Use predefined macro definitions to #ifdef the
  62. inclusion of configuration files and varying definitions.
  63.  
  64.  
  65.          STEP 2.1: CONFIGURATION OF MAKEFILE
  66.          -----------------------------------
  67.  
  68. Check the 'Makefile' file for the following parameters.  To ease
  69. future upgrades, override these values with definitions in config.h.
  70. The proper definition is provided in parenthesis.  For example, to use
  71. gcc as a compiler, add "#undef COMPILER" if necessary, and "#define
  72. COMPILER gcc" to config.h.
  73.  
  74. CC    The command to invoke the C compiler (COMPILER).
  75.  
  76. CPP    The command to invoke the C preprocessor with the result
  77.     written to the standard output stream (PREPROC).
  78.  
  79. CFLAGS    Flags to the C compiler (e.g. -O or -g) (CDEBUG for debug or
  80.     optimization flags, COMPILER_FLAGS for everything else).
  81.  
  82. LDFLAGS    Additional flags to the C compiler when linking executables
  83.     (LDEBUG, LOADER_FLAGS and EXTRA_LIB).
  84.  
  85. Notice that mandatory system specific definitions for the above are
  86. usually defined in the s- file (see below).
  87.  
  88.  
  89.        STEP 2.2: SPECIFY NETWORK AND NNTP CONFIGURATION
  90.        ------------------------------------------------
  91.  
  92. If you use nn on a single system with news on its local disks, you
  93. will not have to worry the least about networking, and you simply
  94. leave NETWORK_DATABASE and NNTP undefined.
  95.  
  96. Otherwise, consult the file NNTP for further instructions on sharing
  97. the news file and/or the database via NFS and/or NNTP.
  98.  
  99.  
  100.              STEP 2.3: SELECT SYSTEM FILE
  101.              ----------------------------
  102.  
  103. A list of systems that nn runs on and their associated include files
  104. is found in the file doc/MACHINES.
  105.  
  106. If none of these can be used on your system, create your own based on
  107. the file conf/s-template.h.
  108.  
  109.  
  110.             STEP 2.4: SELECT MACHINE FILE
  111.             -----------------------------
  112.  
  113. A list of machines that nn runs on and their associated include files
  114. is found in the file doc/MACHINES.
  115.  
  116. If none of these can be used on your system, create your own based on
  117. the file conf/m-template.h.
  118.  
  119.  
  120.             STEP 2.5: LOCALIZE NN
  121.             ---------------------
  122.  
  123. You will have to specify a number of files and directories which nn
  124. has to know about to work properly.  If you don't specify these, nn
  125. will in most cases use it own alternatives which will correspond to
  126. common practices on most installations.
  127.  
  128. The following directories and files can be defined in config.h:
  129.  
  130.  
  131. BIN_DIRECTORY        (mandatory)
  132.  
  133.     The directory where you want the user programs to be
  134.     installed.  The following programs will be installed in that
  135.     directory:
  136.  
  137.     nn        The news reader program
  138.     nnacct        Accounting, quota, and access management
  139.     nnadmin        The administration program (link to nn)
  140.     nncheck        Check for unread articles (link to nn)
  141.     nngoback    Mark older articles as unread (link to nn)
  142.     nngrab        Faster keyword search
  143.     nngrep        Grep for news groups (link to nn)
  144.     nnpost        Standalone posting program (link to nn).
  145.     nnstats        Collection and expiration statistics
  146.     nntidy        Cleans up the rc file (link to nn)
  147.     nnusage        Show usage statistics
  148.  
  149.  
  150. LIB_DIRECTORY
  151.  
  152.     The directory where nn's auxiliary programs and files will
  153.     be installed unless another directory is specified by one of
  154.     the following definitions.
  155.  
  156.  
  157. MASTER_DIRECTORY    (optional, default = LIB_DIRECTORY)
  158.  
  159.     The directory containing the nnmaster daemon programs.  It
  160.     should not be shared in a networked environment!
  161.  
  162.     back_act
  163.         Program to make daily copies of the active file to
  164.         allow nngoback to work.
  165.  
  166.     nnmaster
  167.         The program building and maintaining nn's database.
  168.  
  169.     nnspew    Program to build a tertiary subject database for
  170.         nngrab.
  171.  
  172.     MPID    Exclusive lock file created by the currently running
  173.         nnmaster daemon process.  Accessed by nnadmin to
  174.         get the daemon's process id.
  175.  
  176.     GATE    Message file created by nnadmin and deleted by nnmaster.
  177.  
  178.  
  179. CLIENT_DIRECTORY    (optional, default = LIB_DIRECTORY)
  180.  
  181.     Contains the auxiliary programs and files required by the nn
  182.     program:
  183.  
  184.     aux    The shell script used in connection with replies etc.
  185.         It knows about common editors like vi and gnu emacs to
  186.         have them position the cursor appropriately.  To add
  187.         support for your own favourite editor, you should edit
  188.         the file aux.sh, not the compiled `aux' script!
  189.  
  190.     upgrade_rc
  191.         Script used by nn to convert release 6.3 rc files to
  192.         .newsrc format when first invoked after upgrade to 6.4
  193.         or later.
  194.  
  195.  
  196. HELP_DIRECTORY        (optional, default = CLIENT_DIRECTORY/help)
  197.  
  198.     The directory where the help files and online manual are
  199.     stored.  This directory is an obvious candidate for sharing in
  200.     a network.
  201.  
  202.  
  203. CACHE_DIRECTORY        (optional, default = each user's .nn directory)
  204.  
  205.     Only used with NNTP!! Directory to be used as a common storage
  206.     for temporary cache files when nn is used with NNTP.  Using a
  207.     common directory for cache files allows you to clean these out
  208.     on reboot with a single "rm" command in the rc file:
  209.          (cd CACHE_DIRECTORY; rm -f *)
  210.     But of course this requires that you use a separate directory
  211.     for the cache!
  212.  
  213.  
  214. TMP_DIRECTORY        (optional, default = /usr/tmp)
  215.  
  216.     The directory to be used as temporary storage for files used
  217.     when editing responses etc.
  218.  
  219.  
  220. NEWS_DIRECTORY        (optional, default = /usr/spool/news)
  221.  
  222.     The directory containing the news spool directories and files.
  223.     It is not required when a remote NNTP server is used.
  224.  
  225.  
  226. NEWS_LIB_DIRECTORY    (optional, default = /usr/lib/news)
  227.  
  228.     The directory containing the news system's active file and
  229.     other related files.
  230.  
  231.     When a remote NNTP server is used, it is still needed as the
  232.     location of the (mini-)inews program if posting is allowed
  233.     (unless INEWS is explicitly defined to override the default
  234.     location).
  235.  
  236.  
  237. LOG_FILE    (optional, default = LIB_DIRECTORY/Log)
  238.  
  239.     The log file used by nnmaster and nn to store reports, error
  240.     messages, usage statistics, etc.
  241.  
  242.  
  243.           STEP 2.6: WHERE DO YOU WANT THE DATABASE?
  244.           -----------------------------------------
  245.  
  246. The following definitions in config.h are used to control where the
  247. database maintained by nnmaster is stored.  The database consists of a
  248. couple of files containing global information for all existing groups,
  249. and a pair of files for each non-empty group.  The database requires
  250. some disk space to hold the necessary information.  On average about
  251. 100 bytes per article in the system, or about 5% of the space
  252. allocated to the news articles.
  253.  
  254. The database is intended to be shared together with the news spool
  255. directory in a networked environment provided that NETWORK_DATABASE is
  256. defined in config.h.
  257.  
  258. If DB_DIRECTORY is not defined, the global database files will be
  259. located in a directory named NEWS_DIRECTORY/.nn, and the per-group
  260. files will be located in each individual news group's directory (named
  261. .nnd and .nnx).  Using this strategy will normally require that
  262. nnmaster is owned "news" (OWNER in config.h).
  263.  
  264. The location of the database can be changed via the following
  265. definitions in config.h:
  266.  
  267. DB_DIRECTORY         (optional, default = see above)
  268.     The directory containing the global database information files.
  269.     If you share /usr/spool/news via NFS or RFS, you can set DB to
  270.     something like /usr/spool/news/.nn to share it automatically
  271.     with /usr/spool/news.
  272.  
  273. DB_DATA_DIRECTORY    (optional, default = DB_DIRECTORY/DATA)
  274.     When DB_DIRECTORY is defined, the per-group files will no
  275.     longer be stored in the group directories, but in a single
  276.     common directory specified by DB_DATA_DIRECTORY.  The files in
  277.     this directory will be named either by group number or by
  278.     group name (if DB_LONG_NAMES is also defined).
  279.  
  280.  
  281. The files config.h and NNTP describes how to share the database
  282. between several machines (also when you don't use NNTP).
  283.  
  284.  
  285.                 STEP 3
  286.  
  287.              COMPILE THE SOFTWARE
  288.              --------------------
  289.  
  290. To compile the software, you just have to run one of the following
  291. make commands.
  292.  
  293. If you are making a complete package with both master and client, do
  294.  
  295.     $ make all
  296.  
  297. If you want to share a database which resides on another host (through
  298. NFS/RFS/rdist), you don't need a master on the local system, so you
  299. can do the following instead:
  300.  
  301.     $ make client
  302.  
  303.  
  304.                 STEP 4
  305.  
  306.                INSTALLING THE SOFTWARE
  307.                -----------------------
  308.  
  309. Installation of the nn software is handled entirely via a script
  310. "./inst" created during the compilation.  The components of nn are
  311. split into five parts, which can be installed separately or in various
  312. combinations depending on whether you run a stand-alone system or
  313. networked systems sharing the database and other parts of the nn
  314. package.  The five components are:
  315.  
  316. 1) Master files and programs (machine dependent)
  317.    Install the MASTER_DIRECTORY programs.
  318.  
  319. 2) User files and programs (machince dependent, shareable)
  320.    Install the BIN_DIRECTORY programs.
  321.  
  322. 3) Auxiliary programs (configuration dependent, shareable)
  323.    Install the CLIENT_DIRECTORY files and programs.
  324.  
  325. 4) Documentation (shareable)
  326.    Install the MAN pages in the proper directories.
  327.  
  328. 5) Help files (shareable)
  329.    Install the HELP_DIRECTORY files (except online manual).
  330.  
  331. 6) Online manual (shareable with 5)
  332.    Format and install the online manual in HELP_DIRECTORY.
  333.  
  334.  
  335. Unless you have defined yourself as the owner of the nn package and
  336. have write permission on all the necessary directories, you will need
  337. to be super-user to install nn, so start with
  338.  
  339.     $ su
  340.  
  341. Now run the installation script:
  342.  
  343.     # ./inst
  344.  
  345. The `inst' script will list a menu with the following choices:
  346.  
  347. (1)-(6)    Install individual parts of the package.
  348.  
  349. (s)    Install a complete server + client package (1-6).
  350.  
  351. (c)    Install a client which accesses all its support files and
  352.     the database via a network (2).
  353.  
  354. (h)    Install a client with local auxiliary files, but shared
  355.     documentation and help files (2-3).
  356.  
  357. (n)    Install a client accessing only the database via a network (2-6).
  358.  
  359. (m)    Install only the nnmaster (1).
  360.  
  361. (c)    Install only the client programs (2).
  362.  
  363. (u)    Update already installed parts of the package.  This will
  364.     check for the existence of the old programs, and only update
  365.     programs and files already installed.  You will typically use
  366.     this after applying patches.
  367.  
  368. You can also run the `inst' script with the choices as arguments, e.g.
  369.  
  370.     ./inst m c
  371.  
  372.  
  373. NOTICE: Since nnmaster runs setuid OWNER, all users can potentially
  374.     kill the running master, initialize the database etc. if they
  375.     have access to execute the master.  So either restrict the
  376.     permissions to execute nnmaster or the access to the directory
  377.     containing it.  The default installation puts modes -rwsr-s---
  378.     on nnmaster and leaves the directory "open" which may not be
  379.     adequate for you.
  380.  
  381.  
  382.                 STEP 5
  383.  
  384.                INITIALIZE THE DATABASE
  385.                -----------------------
  386.  
  387. If you have installed the nnmaster on the current system, you now have
  388. to initialize the database:
  389.  
  390.     $ su         -- also as superuser
  391.     # ./inst INIT
  392.  
  393. If something goes wrong in this step, e.g. problems with the active
  394. file, you must redo the initialization after fixing the other
  395. problems.
  396.  
  397. When the INIT operation completes, a database with empty entries for
  398. all the currently existing groups will have been created.  If you want
  399. some special actions to be performed for specific groups as described
  400. in the nnmaster manual, you must now edit the GROUPS file created by
  401. nnmaster in the DB_DIRECTORY.  If you modify the GROUPS file, you must
  402. run the following command to register the changes to the GROUPS file.
  403.  
  404.     $ MASTER_DIRECTORY/nnmaster -G
  405.  
  406. When you are ready, you must start nnmaster to enter all the existing
  407. articles into the database.  If you use the following command,
  408. nnmaster will fork and return immediately; its background child will
  409. continue to update the database whenever new articles arrive:
  410. It will ignore articles which are more than 45 days old (-O).
  411.  
  412.     $ MASTER_DIRECTORY/nnmaster -r -O45
  413.  
  414. It may take quite a while before all existing articles have been
  415. entered into the database.  You can use nnadmin's (U)pdate and (S)tat
  416. commands to trace the progress and the (L)og command to see if it has
  417. finished (a C entry will occur).  You will see that many groups will
  418. be BLOCKED, but the number should decrease as nnmaster gets through
  419. more and more groups.
  420.  
  421. You can also use the following command to do the initial collection of
  422. articles from a terminal and get a nice trace of the action:
  423.  
  424.     $ MASTER_DIRECTORY/nnmaster -D -O45
  425.  
  426. One or two numbers will be shown while a group is being collected.
  427. The first number is the number of the article currently being read.
  428. The (optional) second number will be the number of old (or bad)
  429. articles which nnmaster has ignored in the group so far.
  430.  
  431.  
  432. NOTICE: If the system file you have used does not specify how to
  433.     detatch a process from its controlling terminal, the nnmaster
  434.     may die when you log out.
  435.  
  436. When nnmaster has finished the initial collection the articles, you
  437. can nnadmin's (V)alidate command to verify that the database build by
  438. nnmaster is consistent (restart nnadmin before verifying).
  439.  
  440.  
  441.                 STEP 6
  442.  
  443.              UPDATE SYSTEM FILES
  444.              -------------------
  445.  
  446. You will have to edit some of the scripts and files on your system to
  447. get the database and other support files updates automatically, also
  448. following system shutdown, crashes, etc.
  449.  
  450.  
  451.         STEP 6.1: START NNMASTER WHEN SYSTEM IS BOOTED
  452.         ----------------------------------------------
  453.  
  454. To have the database updated at all times, the nnmaster should be
  455. started when the system is booted.
  456.  
  457. There will be a file named /etc/rc, a directory /etc/rc.d, or
  458. something similar on your system which contains commands that are
  459. executed when the system is booted.  The following commands should be
  460. added to the boot scripts:
  461.  
  462.     rm -f MASTER_DIRECTORY/MPID
  463.     MASTER_DIRECTORY/nnmaster -l -r -C
  464.  
  465.  
  466. Alternatively, you can arrange for cron to run the master regularly.
  467. In this case, you should not use the -r and -C options.  Instead, you
  468. should let cron execute the command 'nnadmin Z' once a day to
  469. validate the database.  For example:
  470.  
  471.     0,10,20,30,40,50 * * * * MASTER/nnmaster -LM
  472.     0 0 * * * BIN/nnadmin Z
  473.  
  474.  
  475. WARNING: If you share the database via NFS or RFS, nnmaster should run
  476.      only on the system where the database actually resides!!
  477.      And preferably it should run on the host where the news spool
  478.      directory is located as well.  This will improve speed as well
  479.      as reliability (NFS can suffer from time out problems).
  480.  
  481.  
  482.         STEP 6.2: SETUP EXPIRE ON THE DATABASE
  483.         --------------------------------------
  484.  
  485. To run expire on the database, you simply have to execute the
  486. following command (with sufficient privileges):
  487.  
  488.     BIN_DIRECTORY/nnadmin =EYW
  489.  
  490. You should arrange for expire to be run on nn's database whenever you
  491. have run expire on the news directories.
  492.  
  493. Supposing you run the expire from your crontab, you may simply add the
  494. above command to the crontab at an appropriate time when you are
  495. certain that news' expire is completed.
  496.  
  497. If you run nnmaster from cron rather than in daemon mode, you can use
  498. the following command to run expire on the database.
  499.  
  500.     nnmaster -F -k ""
  501.  
  502. This form allows you to run expire on selected groups rather than on
  503. all groups as initiated by the above nnadmin command.  See the
  504. nnmaster manual for further details.
  505.  
  506.  
  507.      STEP 6.3: SAVE A COPY OF THE ACTIVE FILE ONCE A DAY
  508.      ---------------------------------------------------
  509.  
  510. The `nngoback' program requires that the program `back_act' is
  511. executed once (and only once) every day to maintain suitable copies of
  512. the active files for the last 14 days.  In a network environment, it
  513. should execute on the same host as the nnmaster.
  514.  
  515. Simply arrange for back_act to be invoked by cron once a day
  516. (preferably just before the batch of news for `today' arrives).  For
  517. example, assuming the news is received just before midnight (syntax
  518. and location of crontab entry may vary):
  519.  
  520. In /usr/spool/cron/crontabs/news (System V):
  521.     00 23 * * * MASTER_DIRECTORY/back_act
  522. or in /usr/lib/crontab (BSD):
  523.     00 23 * * * su - news MASTER_DIRECTORY/back_act
  524.  
  525. The default setup allows you to go 14 days back with nngoback, but if
  526. you don't keep news that long, there is no reason to keep that many
  527. copies of the active file either.  In that case, you can supply the
  528. maximum number of days as an argument to back_act.  Of course, you can
  529. also keep more than 14 copies of the active file to allow nngoback to
  530. go more than 14 days back by giving back_act an argument larger than 14.
  531.  
  532.  
  533.       STEP 6.4:  PREPARE FOR NNSPEW TO BE RUN REGULARLY
  534.       -------------------------------------------------
  535.  
  536. The nngrab program will run faster if a dedicated subject database in
  537. addition to the normal database is available.  To maintain this
  538. additional database, the program nnspew must be executed regularly,
  539. e.g. from cron.  Every 3-6 hours should be sufficient to keep the
  540. database reasonably up-to-date, e.g.
  541.  
  542. In /usr/spool/cron/crontabs/news (System V):
  543.     2 6,12,18 * * * MASTER_DIRECTORY/nnspew
  544. or in /usr/lib/crontab (BSD):
  545.     2 6,12,18 * * * su - news MASTER_DIRECTORY/nnspew
  546.  
  547.  
  548.                 STEP 7
  549.  
  550.             INSTALL AND EDIT GLOBAL FILES
  551.             -----------------------------
  552.  
  553. Depending on your needs, you should create the following files on each
  554. host running nn (you may also just share the files if you like):
  555.  
  556. CLIENT_DIRECTORY/init
  557.     The global init file for all users on the system.  Users will
  558.     be able to override the definitions in this file, but you can
  559.     probably make some sensible decisions which will prevent
  560.     novice users from getting into trouble, for example set the
  561.     default distribution to "local" etc.
  562.  
  563.     You can also specify a global presentation sequence here.
  564.  
  565.     You may use init.sample as a starting point, but don't use it
  566.     without careful examination.  Especially, the sequence part
  567.     is mainly an illustration of the possibilities.  If you are in
  568.     doubt, just delete the sequence part of the file (groups will
  569.     then be presented in pure alphabetical order).
  570.  
  571. CLIENT_DIRECTORY/routes
  572.     You DO NOT NEED this file if you already run a domain based
  573.     mailer, i.e. when HAVE_ROUTING is defined in config.h.
  574.  
  575.     Otherwise, you can use it as a configuration file for the
  576.     domain address remapping done by nn in reply addresses and the
  577.     nnmail program.  You may use routes.sample as a starting point
  578.     (it briefly describes how to build a routes file).
  579.  
  580.     Please notice that neither the routes functionality, nor
  581.     nnmail is a supported part of nn - if you really want to
  582.     run a domain-based mailer, get smail 2.5 or later.  And if you
  583.     ask me how to use it I will answer: "Get SMAIL instead".
  584.  
  585. CLIENT_DIRECTORY/motd
  586.     Every time you change this file, it will be shown to the nn
  587.     users the next time they invoke nn.  This can be used to
  588.     inform the users about changes in the news environment or
  589.     local policies.  (motd = message of the day)
  590.  
  591.  
  592. NNTP_SERVER
  593.     Must contain the host name of the NNTP-server when NNTP is
  594.     used.  If you already run NNTP with your other news readers,
  595.     this file does not need to be modified.
  596.  
  597.  
  598.                 STEP 8
  599.  
  600.                TEST THE BASIC FUNCTIONS
  601.                ------------------------
  602.  
  603. If any of the following tests fails or you see other peculiar
  604. behaviour, you should consult the PROBLEMS file.  You may not be the
  605. only one to have seen the problems, and there might even be a solution.
  606.  
  607. First you should check that nnmaster does collect the articles it is
  608. supposed to.  Here, nnadmin is a great help, since you can peek around
  609. in all the database files and see what nnmaster is doing.  nnadmin
  610. takes a snap-shot of the database when it starts up, but you can take
  611. a new snap-shot anytime using the (U)pdate command.
  612.  
  613. Also look at the (L)og to see that there were no problems while
  614. collecting the articles.
  615.  
  616. There are a few things you should check to ensure the proper
  617. functioning of nn.
  618.  
  619. 1) Backup your current .newsrc file if you have one.  (Don't save it
  620.    in .newsrc.bak or .newsrc.orig since nn may use these names).
  621.  
  622. 2) Run `nn'.  If you have upgraded from release 6.3, nn will convert
  623.    your release 6.3 .nn/rc file into a .newsrc file.
  624.  
  625. 3) Does nn find any news?  If not, does nn -x find anything?
  626.  
  627. 4) Can you send mail to yourself?  Try the sequence:
  628.     m (return) (return) testing (return)
  629.     edit the letter
  630.     s (return)
  631.  
  632.    If not, you should check the REC_MAIL program.
  633.  
  634. 5) Can you post an article to the local test group?  Try:
  635.     :post (return)
  636.        test (return)
  637.        local (return)
  638.     edit the article
  639.     s (return)
  640.  
  641.    If not, you should check the INEWS program.
  642.  
  643.  
  644.          -------------------------------------------
  645.              IF EVERYTHING WORKS
  646.          YOU HAVE COMPLETED THE INSTALLATION
  647.          -------------------------------------------
  648.  
  649.  
  650.             UPDATING THE SOFTWARE
  651.             ---------------------
  652.  
  653. Patches to this software will be distributes as context diff's which
  654. can be applied using Larry Wall's `patch' program.
  655.  
  656. After applying the patches, you will need to redo the compilation and
  657. installation steps:
  658.  
  659.     $ patch -p0 < PATCH_FILE    (or use nn's :patch command)
  660.     $ make all
  661.     $ su
  662.     # ./inst u
  663.  
  664. To be able to install a new nnmaster, the currently running master (if
  665. any) will be stopped automatically, and it has to be started manually
  666. when the installation is complete (unless it is setup to be run by cron).
  667.  
  668. Notice that unless it is explicitly required in the patch, there is no
  669. need to reinitialize the database after applying the patch.
  670.