Last update: 3 October 1995
LISTSERV™ for UNIX® is distributed as two compressed "tar" archive files. The installation guide, which is the file you are currently reading, is also available independently of the archives. One of the tar files contains data files common to LISTSERV on all UNIX(R) platforms, and the other contains the compiled version of the LISTSERV server. In order to simplify the process of removing extraneous files created during the installation procedure, you can copy the tar files to a scratch directory, install LISTSERV, and then "rm -fr /tmp/scratch" (or whatever you name the staging area).
The installation of LISTSERV consists of the following steps,
The two archive files you receive will be called common.tar.Z and either AIX.tar.Z, or SunOS.tar.Z, or ULTRIX.tar.Z, etc... depending on the version of UNIX(R) you are using. The filename is taken from the string returned by the "uname" command on each UNIX(R) platform. Please note that some FTP sites may change the name of the files slightly to adhere to system specific naming conventions. If you're used to dealing with compressed tar files already, then just extract the contents using whatever commands you prefer. If you'd like the sample commands listed below to work as shown, rename the files you received to common.tar.Z and `uname`.tar.Z before continuing. For example, if the system specific file you received is called aix.tar-z, you would enter the command mv aix.tar-z `uname`.tar.Z. Copy or move the two files to a scratch directory first. (The advantage of using a work directory for the installation is that you can easily clean up afterwards.) Once the files have been copied, "cd" to that directory and enter, uncompress *.tar.Z to restore them to their original state. Then enter, tar xf common.tar and tar xf `uname`.tar to unbundle the programs, data files, etc... needed to install LISTSERV. Afterwards you should find the following files have been created in your current directory,
lsv.o Makefile go go.sys go.user.sample u-install.memo lsv_amin.c lcmd.cand the ./home directory will contain the following files.
bitearn.nodes listall.refcard listmast.memo peers.names country.file listfile.memo listownr.memo service.names default.mailtpl listjob.memo listpres.memo stdcmd.file errfac.file listkeyw.memo listserv.memo sysff.file intpeers.names listkwd.file lsvhelp.file system.catalog linkswt2.file listlpun.memo lsvinfo.fileSample commands for this step:
mkdir /tmp/scratch cp common.tar.Z `uname`.tar.Z /tmp/scratch cd /tmp/scratch uncompress *.Z tar xf common.tar tar xf `uname`.tar
The directory where the mail interface and command line interface programs should be installed is defined by the BINDIR macro. The Makefile is distributed with BINDIR set to /usr/local/bin by default. Whether you choose to use the default directory, or redefine it, the installation procedure assumes the directory already exists. If you choose a new directory, you will need to create it before running the final "make install". This directory is only referenced during the installation of the mail interface. Neither the mail interface program, the command line interface utility, nor the LISTSERV server process requires write access to this directory afterwards.
Incoming mail is written to the directory defined by the LSVSPOOL macro in the Makefile. The default value is /var/spool/listserv. Unlike the BINDIR directory, the LISTSERV spool directory is assumed to be a new directory. In fact, no other users or daemon processes should write to this directory since LISTSERV scans this directory for incoming mail. If the directory doesn't exist when the "make install" command is executed, it will be created, and the LISTSERV account will be made the owner.
The LISTSERV executable, as well as associated directories and data files will be installed in the directory pointed to by the LSVROOT macro in the Makefile. Any directory can be used, so long as LISTSERV has write access to it. When the final "make install" is run, the LSVSPOOL directory, and several subdirectories, will be created if necessary. The LISTSERV account will be made the owner of those directories. The Makefile is distributed with the LSVROOT macro is set to /home/listserv/lsv. If you choose the default setting, the directories /home/listserv/lsv, /home/listserv/lsv/home, and /home/listserv/tmp will be created as a result.
To use different directories, edit the Makefile and change the BINDIR, LSVSPOOL, and/or LSVROOT macros.
Sample commands for this step:
vi Makefile
#define LOG_FACILITY LOG_MAILreplacing LOG_MAIL with LOG_LOCAL1, or whatever category is appropriate for your site. If you are using a system on which the openlog() routine only takes two parameters, older Ultrix system for example, just change LOG_MAIL to 0. Once you've checked the Makefile and (optionally) changed the syslog option in lsv_amin.c, enter "make mailer" to build the program.
The "lcmd" utility is also distributed in source form. Once you've compiled and installed "lcmd", users can use it to send commands to your LISTSERV server rather than having to use a mail program. Users familiar with the Bitnet version of LISTSERV will find "lcmd" works much like the VM "tell" and JNET "send" commands. The primary differences being that LISTSERV sends back mail in response to commands submitted with "lcmd", and only your local LISTSERV can be reached. In addition to providing a simple command line interface to LISTSERV, sending commands with "lcmd" obviates the need for password validation of protected commands. Since the origin of the command is determined by the username of the person running "lcmd", not by parsing mail headers, password checking can be skipped by LISTSERV. The lcmd.c program should compile without modification. Site specific information needed by "lcmd" will be provided by the Makefile when building the program. To compile the LISTSERV command interface enter, "make lcmd".
The executable for the LISTSERV server is shipped as one large object file that you need to linkedit on your system to produce a suitable binary. There should be no need to modify anything in the Makefile to perform this step. Just enter, "make server" to build the server program. The resulting binary will be a named "lsv".
Sample commands for this step:
vi Makefile vi lsv_amin.c make mailer make server make lcmd
Sample commands for this step:
su root make install exit
Sample commands for this step:
cd /home/listserv/lsv vi go.user
LISTSERV accepts and responds to several e-mail addresses. Even before you setup mailing lists, mail sent to listserv and owner-listserv should be handed to LISTSERV. The link between LISTSERV and your mail system is the lsv_amin program. If you are running Sendmail, the best way to route incoming mail to lsv_amin is by adding entries to your "aliases" file. Refer to the manual pages for sendmail on your system if you are not sure where the alias file is stored. On many systems the file will be called /etc/aliases. Once you have located the file, add the following lines,
listserv: "|/BBB/lsv_amin /SSS listserv" owner-listserv: "|/BBB/lsv_amin /SSS owner-listserv"to the file, replacing /BBB with the directory where the lsv_amin program was installed (the BINDIR macro in the Makefile), and replacing /SSS with the LISTSERV spool directory (the LSVSPOOL macro from the Makefile). Other than that, the lines should look exactly like the examples above. The double quotes should be entered into the alias file.
For example, if you changed BINDIR to /usr/lbin, and kept the default LSVSPOOL directory, the new lines in /etc/aliases would look like the following.
listserv: "|/usr/lbin/lsv_amin /var/spool/listserv listserv" owner-listserv: "|/usr/lbin/lsv_amin /var/spool/listserv owner-listserv"After updating the alias file, you will need to issue two Sendmail commands. First enter "newaliases" to compile the alias file into the format the sendmail daemon expects. Then you need to direct the sendmail daemon currently running on your system to read the newly compiled list of aliases. Refer to the manual pages for sendmail if you are unsure of how to do so. The command, "kill -HUP `cat /etc/sendmail.pid`" will work on AIX and SunOS systems. If you are running a syslog daemon, sendmail will log the fact that it has loaded the new aliases file. You can check the syslog output after issuing the command to make sure your changes are in place.
Sample commands for this step:
su root cd /etc vi aliases newaliases kill -HUP `cat sendmail.pid` exit
Before you can start up LISTSERV, you will need to install a License Activation Key (LAK) for 'LISTSERV-xxx' (xxx = SUNOS, AIX, BSDI, etc...). In order to offer the same range of services to all LISTSERV sites, regardless of the operating system used, we had to develop our own "license key" scheme. Using system supplied license managers where available and L-Soft LAKs elsewhere would have required us to develop multiple authorization schemes, and would also complicate the task of issuing license keys to customers.
Since the LAK manager is part of LISTSERV, installing the LAK is done last, after all the programs have been built and moved to their proper directories. The process is quite simple, you just create a file in the $LSVROOT/home directory and start the LISTSERV server to compile the information. The instructions for doing so are described in the License Registration Form that came with your installation materials.
12 Jun 1994 22:16:47 LISTSERV-TCP/IP for unix version 1.8a starting... 12 Jun 1994 22:16:47 Copyright L-Soft international 1986-1994 12 Jun 1994 22:16:47 SIGNUP2 file is being compressed... 12 Jun 1994 22:16:47 -> No entry removed. 12 Jun 1994 22:16:48 The network tables are outdated and must be rebuilt. * Network tables generation process started - be patient... Currently processed 500 nodes. Currently processed 1000 nodes. etc...And once the table generation steps have finished you will see,
* Step 6 complete - link weights file successfully compiled. * * Network tables generation completed successfully. 12 Jun 1994 22:16:54 Nearest backbone host is LISTSERV@SEARN 12 Jun 1994 22:16:54 Nearest NJE host is LISTSERV@SEARN 12 Jun 1994 22:16:54 Initialization complete.which confirms that you've successfully installed the LISTSERV server. To issue LISTSERV commands, press Ctrl-C and you will be prompted to enter a command. You can verify that your customized version of "go.user" was used with the RELEASE command. It will display, among other things, the address(es) of the LISTSERV postmaster(s) you entered in "go.user". If not, then stop the server and make certain that LISTSERV owns the "go.user" file, and that execute permission is set for the file. To stop LISTSERV hit Ctrl-C then enter "stop".
Once you've verified that your LISTSERV server starts and accepts commands, you should check to make sure the mail interface is working properly. If you stopped your LISTSERV, then restart it. You can use "go bg" if you'd rather have the server run in the background. After restarting LISTSERV, login to a different username and send mail to the LISTSERV account on your machine. Include one or more LISTSERV commands in the body of the mail message. Since you have yet to define any mailing lists to your server, commands like RELEASE, INFO and THANKS would be good choices. The mail interface notifies the server immediately upon arrival of new mail. So unless your system is heavily used when you try sending the message, a response should arrive within a few moments. If you don't receive mail back from LISTSERV, check for syslog entries generated by the mail interface, lsv_amin. Also, check to see if there are any errors on the terminal/window where you're running LISTSERV. If you started the server with "go bg" check the file "listserv.log" for error messages.
Once the server is ready for production use (that is, once you have installed a permanent License Activation Key, and once you have arranged for LISTSERV to be started automatically when the system boots), you should register it with L-Soft by filling in the enclosed registration form, and returning it to Support@LSOFT.COM. Registering the server is necessary to broadcast its existence to the other LISTSERV servers. Once you have registered, your server will be sent periodic updates about the lists hosted by other LISTSERV sites, among other things, and, similarly, other LISTSERV sites will receive information about the public lists you are hosting. Here is the registration form (the fields you must fill in are represented as XXXXXXXX, or a suggested value is provided):
------------------------------- Cut here -------------------------------- :node.XXXXXXXX ! Internet hostname, including domain name. :userid.LISTSERV ! Username under which LISTSERV runs :net.Internet ! Must be Internet, LISTSERV for UNIX cannot ! cannot run in NJE (BITNET) mode :site.XXXXXXXX ! University of XYZ, city, state, country :country.XX ! Two-letter ISO country code :system.XXXXXXXX ! Which type of UNIX system, and the version ! Examples: SUNOS 4.1, AIX 3.2.5, etc... :machine.XXXXXXXX ! Hardware - RS6000 320H, AXP 3000-600, etc... :contact.XXXXXXXX ! Contact person, in the following format: ! (Joe Manager) JOE@XYZ.EDU (+1 301 871.2727) :type.unix ! Do not change this - must be "unix" :version.1.8a ! Version you are currently running :backbone.XXXXXXXX ! YES or NO, depending on whether you want to ! participate in the LISTSERV backbone; L-Soft ! will advise you on this keyword. ------------------------------- Cut here --------------------------------
mail listserv@xyz.edu < newlist.createIf you have questions about list creation, keywords, list management and other high-level or system-independent LISTSERV topics, the best place to ask them is the LSTOWN-L list, an open forum of LISTSERV list owners.
Please note that LISTSERV will not create archive directories automatically. You must issue the appropriate "mkdir" command yourself. And when creating such directories, remember that the file permissions must grant the LISTSERV account write access to the directory. Also, directories should be specified as full path names.
For assistance with problems specific to evaluation kits, join the LSTSRV-E list or contact Support@LSOFT.COM for a prompt reply. Please don't forget to tell us which brand and version of unix you are running!
------------------------------- Cut here -------------------------------- PUT SAMPLE.LIST PW=CCCCCCCC * * Title of sample LISTSERV list * * Review= Public Subscription= Open Send= Public * Notify= Yes Reply-to= List,Respect Files= No * Stats= Normal,Private Validate= No * Notebook= Yes,/some/directory,Monthly,Public * * Owner= someone@somewhere.EDU * * PW= XXXXXXXX ------------------------------- Cut here --------------------------------Once you have constructed a list header file, and sent it to your LISTSERV, you need to instruct your mail system to route mail for that new list to the LISTSERV mail interface. That involves adding entries to your Sendmail aliases file, much like you did when installing the server itself. For each new list, you'll need to add four entries to the aliases file. The format of those lines is as follows,
NAME: "|/BBB/lsv_amin /SSS NAME" owner-NAME: "|/BBB/lsv_amin /SSS owner-NAME" NAME-server: "|/BBB/lsv_amin /SSS NAME-server" NAME-request: "|/BBB/lsv_amin /SSS NAME-request"where "NAME" is the name of the mailing list, "/BBB" in the directory where the mail interface was installed (BINDIR in the Makefile), and "/SSS" is the LISTSERV spool directory (LSVSPOOL in the Makefile).
For example, assuming the default values were chosen for BINDIR and LSVSPOOL, the aliases for a new list called "newt" would be,
newt: "|/usr/local/bin/lsv_amin /var/spool/listserv newt" owner-newt: "|/usr/local/bin/lsv_amin /var/spool/listserv owner-newt" etc...Once you've added the new aliases to the file, you need to issue the "newaliases" command and send your Sendmail daemon a hangup (HUP) signal before they will take effect.
As with the earlier step where adding mail aliases was necessary, the commands documented above can be automatically invoked by using the "make" command. If you system stores aliases in /etc/aliases, and the newaliases command can be used to compile that file, and if the command "kill -HUP `cat /etc/aliases`" will cause your Sendmail to reload the alias file, then the automated method should work. To add the mail aliases for a new list, and to direct your Sendmail to use those new aliases immediatedly, enter "make list name=XXX" where "XXX" is the name of the new list.
listserv:2:respawn:/u/listserv/server/go bgPlease refer to the manual pages for init, and inittab on your system for specific information on how such mechanisms work on your version of UNIX(R).
To register a new file to the server, you add a line to the "site.catalog" file in the LSV$ROOT directory (create it if it did not exist). Do not modify the "system.catalog" file, as it is part of LISTSERV and may be replaced when you apply service. Here is what a typical "site.catalog" entry looks like:
MY.FILE my.file./aaa/bbb XXX YYYThe first item, MY.FILE, is the name by which the file is known to LISTSERV. That is, the users will use GET MY.FILE to order a copy of that file. The name should only contain one period. Only the first 8 characters of the name and the first 8 characters of the extension are shown by the INDEX command. This restriction will be removed with the new file server system.
The second item, "my.file./aaa/bbb", is the name LISTSERV will use for the actual UNIX file: filename, period, extension, period, directory. The strange format is because LISTSERV uses an operating system abstraction layer for file accesses, where all system-dependent attributes are relegated to the last item. Note that the directory must be created before you register the file. For security reasons, LISTSERV will not create the directory (or set the protections) for you.
The third and fourth items are "File Access Codes" (FACs). The first is for read accesses, and the second for writing. The following file access codes are available:
MY.FILE my.file./pub JOE@XYZ.EDU,JACK@XYZ.EDU,PRIVATE(XYZ-L) CTLdefines a file that Joe, Jack and the subscribers of the XYZ-L list can order via the GET command, but that only the LISTSERV administrator can update.
IMPORTANT: LISTSERV does not set file protections to ensure that only the people listed are allowed to access the files. These attributes apply to LISTSERV commands (GET, PUT, INDEX) only; it is your responsibility to protect the actual UNIX file and parent directory by setting the file protections and/or ownership (UID and GID) to prevent unwanted access by local users. Please keep in mind that the LISTSERV username must be able to read the files it is to distribute to people, and it must have read/write access to files you want people to be able to update via PUT commands.
listserv: "|/BBB/lsv_amin /SSS listserv" owner-listserv: "|/BBB/lsv_amin /SSS owner-listserv"(where /BBB is the BINDIR directory, and /SSS is the LSVSPOOL directory) to your sendmail aliases file. Then rebuild the aliases and send the appropriate signal to your sendmail daemon to load the new aliases.
Unix is a registered trademark of UNIX Systems Laboratories, Inc.
AIX is a registered trademark of International Business Machines Corporation.
Ultrix is a trademark of Digital Equipment Corporation.
Sun is a registered trademark of Sun Microsystems, Inc.
JNET is a registered trademark of Wingra Technologies, Inc.
All other trademarks, both marked and not marked, are the property of their respective owners.