L-Soft international, Inc.
Simplified Installation Manual for
LISTSERV® for UNIX(R)
This document sets forth a simplified installation procedure for LISTSERV 17.0 for UNIX with a build date of June 8, 2019 or later.
Information in this document is subject to change without notice. Companies, names, and data used in examples herein are fictitious unless otherwise noted. L-Soft international, Inc. does not endorse or approve the use of any of the product names or trademarks appearing in this document.
Permission is granted to copy this document, at no charge and in its entirety, provided that the copies are not used for commercial advantage, that the source is cited, and that the present copyright notice is included in all copies so that the recipients of such copies are equally bound to abide by the present conditions. Prior written permission is required for any commercial use of this document, in whole or in part, and for any partial reproduction of the contents of this document exceeding 50 lines of up to 80 characters, or equivalent. The title page, table of contents and index, if any, are not considered part of the document for the purposes of this copyright notice, and can be freely removed if present.
Copyright ã 2009-2019, L-Soft international, Inc.
All Rights Reserved Worldwide.
LISTSERV is a registered
trademark licensed to L-Soft international, Inc.
ListPlex, CataList, and EASE are service marks of L-Soft international, Inc.
All other trademarks, both marked and not marked, are the property of their respective owners.
Some portions licensed from IBM are available at http://oss.software.ibm.com/icu4j/
This product includes code licensed from RSA Security, Inc.
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
All of L-Soft's manuals are available at the following URL: http://www.lsoft.com/manuals.html
invites comment on its manuals. Please feel free to send your comments by
e-mail to: MANUALS@LSOFT.COM . (Unfortunately we cannot provide any support via that address.)
Last Revised 10 Jun 2019
Table of Contents
This document sets forth a simplified installation procedure for LISTSERV for Unix platforms. A new configuration script and a single binary installer replaces the need to download two separate .tar.Z archives and manually configure LISTSERV's Makefile and go.user site configuration file before installing or upgrading.
This procedure is designed for first-time installers or those who simply wish to install LISTSERV with most of its default settings. Therefore, it is necessarily limited in its scope and does not provide user control over every aspect of the installation; but rather, it allows the installer to set several basic options and relies on Makefile defaults for the rest.
If it is desired to have complete control over all aspects of the LISTSERV installation, it will be necessary for installers to revert to the original installation instructions found in the Installation Manual for UNIX(R).
LISTSERV for Unix is available for AIX, Linux, MacOS, and Solaris (SPARC and x64). As of LISTSERV 17.0, LISTSERV is available only for the 64-bit versions of those platforms, with the single exception of MacOS, which remains at 32-bit.
A comprehensive list of operating systems (and versions) under which LISTSERV is supported can be found at
LISTSERV for Unix is available for the operating systems listed here: LISTSERV Supported Operating Systems.
All LISTSERV for Unix distribution kits built since December, 2018, are compressed with gzip(1), and have extensions like .tar.gz and .bin.gz. This should not cause a problem for our customers as the compress(1) utility formerly used is nearly extinct and gzip(1) is readily available for our supported unix platforms. The main difference is that the distribution kits are significantly smaller due to the superior compression algorithm found in gzip(1).
LISTSERV requires that LDAP support be installed on your machine, whether or not you use LISTSERV's LDAP features. For Linux servers, this may not be an issue, as OpenLDAP is generally installed by most distributions by default. For other unix variants, your mileage may vary.
Note: The config.sh installer will try to identify whether or not your machine has LDAP support before allowing you to install LISTSERV.
If LDAP is not installed, you may see errors like this at run time:
[root@listserv listserv]# ../go bg
> Starting LISTSERV as a background process
[root@listserv listserv]# ./lsv: error while loading shared libraries:
libldap-2.2.so.7: cannot open shared object file: No such file or directory
In addition, attempting to re-link the 'lsv' executable manually (i.e., from the Makefile) without having LDAP support installed on the machine will result in compiler errors similar to the following:
ld: 0711-317 ERROR:
Undefined symbol: .ldap_next_entry
ld: 0711-317 ERROR: Undefined symbol: .ldap_first_entry
ld: 0711-317 ERROR: Undefined symbol: .ldap_first_attribute
ld: 0711-317 ERROR: Undefined symbol: .ldap_next_attribute
ld: 0711-317 ERROR: Undefined symbol: .ldap_get_values_len
ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free_len
ld: 0711-317 ERROR: Undefined symbol: .ldap_memfree
ld: 0711-317 ERROR: Undefined symbol: .ber_free
ld: 0711-317 ERROR: Undefined symbol: .ldap_msgfree
ld: 0711-317 ERROR: Undefined symbol: .ldap_search_s
ld: 0711-317 ERROR: Undefined symbol: .ldap_unbind
ld: 0711-317 ERROR: Undefined symbol: .ldap_initialize
ld: 0711-317 ERROR: Undefined symbol: .ldap_set_option
ld: 0711-317 ERROR: Undefined symbol: .ldap_bind_s
ld: 0711-317 ERROR: Undefined symbol: .ldap_err2string
and any resulting 'lsv' will not be executable.
Note: Under newer distributions of Linux, it may be necessary to relink LISTSERV with the default OpenLDAP libraries. We currently link against OpenLDAP version 2.4.
There is no difference between the distributions except the license shipped with them. The Classic kits ship with an evaluation LAK for Classic that expires in December of the current year. Lite kits ship with a permanent Lite Free Edition LAK.
LISTSERV requires exclusive access to the mail sent to one username. Unless you have a very good reason to do otherwise, the username "listserv" should be used for that purpose. Many people around the world are already familiar with LISTSERV, and will assume that mail sent to <firstname.lastname@example.org> will reach the server. The LISTSERV account is just an ordinary user, it doesn't need privileges, doesn't require access to restricted directories, and it doesn't need to have any particular UID or GID.
At this time you should create the "listserv" userid according to your usual procedure for creating new user accounts.
For most purposes it is sufficient to install LISTSERV under the "listserv" user's root directory, that is, the directory you arrive in by issuing the command cd ~listserv. Under most unix platforms supported by L-Soft, the absolute path is typically /home/listserv.
If it is preferred to install LISTSERV in a different location, determine what that location will be.
In either case, you will need to know the absolute path to the installation directory when you run the configuration script.
LISTSERV needs to know a variety of things about your system, and also how to communicate with the people that will be maintaining the software. You will need to gather this information before you start.
The NODE setting is the fully-qualified domain name as registered in DNS for the machine LISTSERV is running on, and is the hostname by which LISTSERV will always identify itself when it sends mail out. This is something like LISTSERV.YOURDOMAIN.COM. It must be a fully-qualified domain name (FQDN) and it must map to an A or MX record in your domain's DNS service. While it is possible to use a bracketed IP (eg, [10.0.0.24]) for testing purposes, as noted above the use of bracketed IPs in production is not supported and not recommended.
You must provide a space-separated list of email@example.com type email addresses belonging to people who have authority to manage LISTSERV--specifically the people who are allowed to create lists, but also who have global authority on the server to look at lists, modify list headers, and so forth. There are some advanced options for this setting but for right now you will probably just want to insert your own email address so that you can test the server. You can always go back to add more administrators by editing the go.user configuration file and adding more space-separated entries to the POSTMASTER= variable setting.
Note: A LISTSERV administrator should NEVER be LISTSERV@ anywhere or POSTMASTER@ anywhere. In fact, a LISTSERV administrator address should never contain the string "listserv" to the left of the @ sign. These userids are reserved and mean specific things to LISTSERV. If you need to use a generic name for a postmaster account, it is recommended that you use something like "listmaster" or "lstmaint" instead.
LISTSERV cannot use a remote web server for its web archive and administration interface. The web server MUST be installed on the same machine with LISTSERV.
Normally the locations for the various parts of the web interface are dependent on how you have set up your web server. You need to know:
This is the directory normally reached by the relative URL /cgi-bin . A common absolute path to this directory is /var/www/cgi-bin , which the installation script uses as a default. Your web server may have been installed with its cgi-bin directory in a different place, or with a different name; so it is imperative that you verify the absolute path that leads to the executable script directory on your web server. The 'wa' CGI program used for the web interface is installed in this directory.
This is normally /cgi-bin/wa .
This is normally /archives . This points to the directory where LISTSERV will write the various HTML files needed for the web archive and administration interface.
This is the directory normally reached by the relative URL /archives . A common absolute path to this directory is /var/www/html/archives . Again, your webserver may have been installed with its root content directory in a different place, so it is likewise imperative that you verify this absolute path as well.
For LISTSERV Classic, point your browser here: Download LISTSERV® Classic/HPO .
For LISTSERV Lite, point your browser here: Download LISTSERV® Lite .
In both cases, follow the registration instructions and download the file into a scratch directory.
Superuser privileges are required for the installation of LISTSERV. Therefore, for this step, you must log in as (or become) the superuser, 'root'.
The installation script will exit immediately upon execution with an information message if you are not 'root'.
Once you have downloaded the kit to your scratch directory (IMPORTANT: do not download the kit into the directory where LISTSERV will actually be running from!) , do the following:
For LISTSERV Classic:
Assuming Solaris as an example, issue the following commands at the shell prompt:
chmod u+x Solaris.bin
For LISTSERV Lite:
Assuming Linux as an example, issue the following commands at the shell prompt:
chmod u+x Linux-Lite.bin
For the first command, in both cases you may use 'gunzip' if your system does not have 'uncompress'. The second command in either case starts the installation script:
Please read the installation guide, located at
If you have read the guide, please press enter to continue.
Hit enter at this point if you have already taken a look at the installation guide (which of course you are doing right now).
Using /tmp/LISTSERVinstall6936 for temporary files.
L-Soft LISTSERV(R) installation script, version 17.0
Welcome to the LISTSERV for unix installation script! This script will ask several questions pertaining to the installation. Before continuing, you should collect the information needed. If you have not yet read the installation guide (unixinst-sim.html) that is shipped in the installation kit, which will explain what information you need, we recommend that you do so now.
After you answer the questions, you will be given a chance to review your choices and make corrections. For instance, you should make sure thatCFLAGS is correct for your system if you want to link with a DBMS library. The script defaults may not be correct for your system.
Are you ready to
Assuming that you have collected all of the information noted earlier in this document, you can type 'y' and proceed. If you have not collected the information, type 'n', collect the information, and run the script again. Next, you are asked if it is OK to unpack the distribution files in the current directory. Remember, you should be running the installer from a scratch directory, not from the directory in which you intend to install LISTSERV.
Using gawk for awk.
Current directory is: /tmp/LISTSERVinstall6936
We need to unpack
the distribution files in this directory. Proceed?
Trying gunzip to uncompress distribution...
Next, the installer checks for the existence of an appropriate user account.
Testing for a working listserv user account...
If there is no working "listserv" account on the machine, this test fails and the installer exits. You will need to create a "listserv" user account with a working shell (preferably 'sh', 'bash' ,or equivalent) under which LISTSERV can run, then re-run the installer.
The script then asks questions about your compiler:
How do you run the C
Please enter any
additional options to pass to the C compiler.
In most cases, you should not change these answers. Most compilers, including gcc, run from a generic link 'cc' that is installed when the compiler is installed. If you are not sure if your compiler can be invoked with 'cc', simply leave this alone and the script will test the default before continuing.
The "-O" option is required in order to optimize compilation, that is, to reduce the size of the resulting executable and reduce execution time. L-Soft does not recommend in any case that this option be dropped, or that any other options be added. The opportunity to add compiler options is provided only for special cases which may be identified by L-Soft's support or development departments.
The next question relates to where the lsv_amin mailer and lcmd command pipe interface will be installed. The most common location for such files is /usr/local/bin. If you want to place these executables in a different location, enter that location at this point.
should the LISTSERV mail and command line interfaces be installed?
Next you must provide the absolute path to the main LISTSERV directory. L-Soft recommends that LISTSERV's files be placed in the 'listserv' user's home directory (usually /home/listserv).
should the server code and data files LISTSERV needs be placed?
Next, you have the option to decide how the path to the spool directory will be passed to the lsv_amin mailer program, which interfaces sendmail to LISTSERV. In most cases it is recommended to take the default, "paths". This is discussed in more detail in the full LISTSERV installation guide, but suffice it to say that unless you are using an old version of Zmailer, there is no compelling reason to change this from the default.
How do you want the
path to the spool directory passed to the lsv_amin mailer? (See the
documentation for more information; however it is recommended to take the
LISTSERV Classic/Classic HPO only: The following section allows you to link in DBMS support for either Oracle, DB2, or UnixODBC (assuming availability for your unix platform). Note carefully the following requirements for DBMS support:
· LISTSERV Classic (or Classic HPO) is required. This section will not display if you are installing LISTSERV Lite as DBMS features are not available with LISTSERV Lite.
· LISTSERV must support the relevant DBMS on your operating system. If Oracle is not supported, you will not be asked if it should be installed. Similarly, if DB2 is not supported, you will not be asked if it should be installed. If neither DBMS is supported by LISTSERV on your operating system, the section will be skipped.
· Your computer must have a compiler, such as gcc. (If no compiler is available, these items will be skipped, since DBMS support requires that the 'lsv' binary be relinked.)
· Your computer must have the appropriate DBMS installed. For Oracle this means that Oracle Net (formerly SQL*Net) or equivalent must be installed on the local machine. For DB2 this means that DB2 must be installed on the local machine. For UnixODBC, this means that UnixODBC must be installed on the local machine. If this requirement is not met and you attempt to compile DBMS support in anyway, the relinking operation will fail when the DBMS support libraries are not found.
· You cannot specify support for DB2 and UnixODBC at the same time. You may specify support for any one supported DBMS alone, or you may specify support for either CLI and DB2, or CLI and UnixODBC.
Next, please choose which DB modules to link with.
OCI? (Requires that
SQL*Net is installed on the local machine.)
DB2? (Requires that
DB2 be installed on the local machine.)
that unixODBC be installed on the local machine. DB2 must be disabled.)
Finally you will be presented with the choices you have made. You can either change individual options at this point or continue with the installation.
c) LDFLAGS= nooci.o nouodbc.o
an option to change or hit enter to accept values and continue.
If you choose to go on, the script continues with:
Now using awk to rewrite the Makefile to use your choices...
After this operation, the Makefile will be properly configured for your installation. You are then prompted:
Would you like to
install the required files in /home/listserv right now?
This installs LISTSERV per your configuration responses above. (If you are upgrading, this is identical to 'make update'.)
Next, you are asked if you want to install the web interface. The web interface is not required to run LISTSERV. If you choose to install it, enter "y". If you do not want to install the web interface at this time, enter "n" and the script will skip this section.
Would you like to
install the web interface?
If you answered "y", next you must enter the path to your web server's executable script directory, which you should have determined above while gathering installation information.
What is the path to
your CGI directory? (The web interface will be installed there.)
Install WA setuid
listserv? (Answer yes unless you intend to use suexec. The wa cgi must run as
the listserv user.)
If you want to run WA setuid listserv, answer "y". In this case, the 'wa' CGI script must be owned by the 'listserv' user, and must be set up to run 'suid listserv', which means that the suid bit (mask 4000) must be set in order for it to work properly. By default, 'wa' is installed with permissions 4755 and owned by 'listserv'.
However, the "normal" method of running WA setuid listserv is not appropriate if you prefer to run CGI programs under suexec. In that case you would want to answer "n" to the question.
Once you make this decision, the 'wa' CGI script is installed (in our case we are installing WA setuid listserv):
After this script completes, please make sure that the permissions and ownership on /var/www/cgi-bin/wa are acceptable to your local security policy.
They are currently:
-rwsr-xr-x 1 listserv root 768193 Feb 9 17:18 /var/www/cgi-bin/wa
Once the web interface is installed, if a go.user file already exists in LISTSERV's home directory (for instance, if you are doing an upgrade), it will be read in and used for default settings:
Next, the script offers to let you do some basic configuration of the 'go.user' file, which contains LISTSERV's startup configuration. This file is required and for new installations it must be customized for your local site, or LISTSERV will not work properly.
Note: If you are upgrading your LISTSERV installation,
you will NOT lose your current settings if you answer "y" to the
following question. Simply do not change any of the values presented if you
wish to keep them as-is.
Would you like to
set some common options in /home/listserv/go.user ?
Next, several configuration variables may be set. For brand-new installations, you should not take the defaults! In this case the defaults are provided only as examples.
The fully qualified
domain name for this host.
local mailing addresses, use asterisks to match any number of arbitrary
address(es) of the LISTSERV maintainer(s). SPACE SEPARATED!
Optional WWW archive
interface - see installation guide for details.
As before, you are then presented with the changes (if any) that you have made, and prompted to choose options to change or hit enter to continue.
Choose an option to change or hit enter to accept values and continue.
The changes are then written to go.user:
Writing your choices to /home/listserv/go.user ...
At this time the script will write a file called /etc/lsv-wa.config, which is a world-readable, root-owned file containing configuration information used by the 'wa' script. It asks you to verify the web archive URL before it continues:
Several settings need to be written to /etc/lsv-wa.config
What is the
(preferably) relative URL that leads to the directory specified in WWW_ARCHIVE_DIR?
If the default is suitable, hit return, or if it is not, type in the correct URL and hit return.
completed successfully! ***
Please use your web browser to read
in order to complete and test the setup.
And you are finished. Congratulations; you have successfully installed LISTSERV for unix!
The following describes the prerequisites for upgrading your LISTSERV installation to a newer version. Please read this section carefully, and do not hesitate to contact the support department if you have questions.
LISTSERV 16.x web interface customizations and branding
Before upgrading to LISTSERV 17.0, please be sure to back up your LISTSERV installation.
PLEASE read the LISTSERV 17.0 What's New document before upgrading!
LISTSERV 17.0 is a major upgrade to the traditional LISTSERV web interface, bringing it in line with present day standards with responsive templates designed to display on both desktops and hand-held devices. While there is a backward-compatible interface mode that allows both the server interface and individual list interfaces to fall back to the non-responsive 16.x “look and feel,” customizations made to the 16.x web templates are not compatible with the 17.0 web interface and will have to be retooled to fit into the new responsive interface. If your LISTSERV server has heavily-customized or branded templates, L-Soft strongly recommends that this retooling be done in a test environment before upgrading your production server.
Before installing any upgraded files, the LISTSERV installer scripts for both Windows and unix will copy SITE.WWWTPL (if it exists) to SITE165.WWWTPL. This is a requirement for the “compatibility mode” previously mentioned, and preserves any customizations made to the 16.x web templates for use by that mode.
LISTSERV sites that normally upgrade using manual methods rather than using the installer kits MUST perform the SITE.WWWTPL -> SITE165.WWWTPL operation manually. Unix LISTSERV sites performing this manual operation MUST ensure that the resulting site165.wwwtpl file is named in lower case, is owned by ‘listserv’, and has the same permission settings as site.wwwtpl.
IMPORTANT: Because of non-backward-compatible changes made in LISTSERV 16.0 to the format of LISTSERV’s SIGNUP files which allow UTF-8 characters to be used in passwords, and the addition of non-reversible subscriber password encryption, L-Soft STRONGLY RECOMMENDS that, prior to upgrading, a full backup be made of your LISTSERV installation if you are upgrading from a version earlier than 16.0.
IMPORTANT: Install your LISTSERV 17.0 product LAK before upgrading!
A valid product LAK (License Activation Key) with "REL=17.0" must be installed before upgrading or LISTSERV will not start after the upgrade.
If you have not received a LISTSERV 17.0 product LAK, please contact your sales representative or SALES@LSOFT.COM before upgrading!
If your product LAK has EXP=NEVER, you will also need to install an appropriate LISTSERV maintenance LAK.
To find out if you can upgrade to LISTSERV 17.0 with your current LAKs, please issue a SHOW LICENSE command to LISTSERV and examine the response. It will be similar to this:
Your license key will be valid for the 17.0 upgrade if your current product LAK is for version 17.0 or higher and your maintenance is not expired.
Upgrading LISTSERV is almost as simple as installing it. Simply follow these steps:
· If you are upgrading from one full version of LISTSERV to another (for instance, from 16.5 to 17.0), you should have received a new LAK from your sales representative. If you do not have a LAK for the version you are upgrading to, stop right here and contact your L-Soft sales representative. If you are not sure what version you are currently licensed for, send a "SHOW LICENSE" command to LISTSERV.
· If you have received a new LAK, install it onto your old installation, following the instructions that come with the LAK. Send LISTSERV a "SHOW LICENSE" command after restarting LISTSERV to ensure that the new LAK has been installed properly. Do not proceed further until this step has been correctly completed.
· Back up the entire LISTSERV directory hierarchy (just in case).
· Stop LISTSERV.
Get the current Unix evaluation kit from the LISTSERV evaluation kit
download page and install it over your existing installation. Your current
configuration, lists, and other settings will be preserved. Note that
evaluation kits are production code limited only by an evaluation LAK, which
your production LAK will override.
(If you are upgrading a LISTSERV Lite installation, you should get the current LISTSERV Lite kit from the LISTSERV Lite download page.)
· Stop LISTSERV. If you have LISTSERV set up to respawn itself (rare), be sure to bring LISTSERV to a complete stop before proceeding.
· Follow the instructions in this document to install the new version over the old. Your current configuration, lists, and other settings will be preserved (simply choose "n" when prompted to set variables in the go.user file).
· Restart LISTSERV and send a command to the server to make sure the installation was successful (e.g., SHOW LICENSE).
· Note: Please be aware that a LISTSERV upgrade is effectively a new installation over the top of the old installation. The installer does not do any version checking for files that are considered to be LISTSERV's core files to determine whether or not they need to be replaced. Therefore there is effectively no difference between a fresh install and an upgrade install.
· Note: The standard LISTSERV Classic and Lite kits for unix are binary installers that are designed to simplify the installation process. If upgrading a LISTSERV Classic installation, or going from LISTSERV Lite to LISTSERV Classic, you may choose to download the old 'tar.gz' installation kits instead. If so, be sure to download common.tar.gz as well as the `uname`.tar.gz kit for your unix. This is very important as the common files also change from version to version.
IMPORTANT: LISTSERV Lite installations should always be updated from the ".bin" kits provided specifically for LISTSERV Lite.
All of L-Soft's formal documentation for LISTSERV is available at http://www.lsoft.com/manuals .
There are several mailing lists dedicated to the support of LISTSERV.
for LISTSERV maintainers and interested list owners
for LISTSERV list owners
for LISTSERV evaluation kit users
for LSMTP users
for LISTSERV Lite users
for third-party developers using features documented in the Developer's Guide to LISTSERV
To subscribe to any of these lists, send mail to LISTSERV@PEACH.EASE.LSOFT.COM with the following command in the body of the message:
SUBSCRIBE listname Your Name
At http://www.lsoft.com/lsv-faq.html we've attempted to document a few of the most frequently-asked questions pertaining to installing and running a LISTSERV server. Before writing to our support department for problem resolution, please take a moment to read through the online FAQ and see if your problem is answered there.
L-Soft recognizes that the FAQ pages are not going to solve every problem you may face. We are always willing to help diagnose and correct problems you may be having with your registered LISTSERV® server. To that end, please note the following when you write to L-Soft with a problem report:
1. Please make the subject line of your report indicative of the problem, and in particular the product with which you are having a problem. A subject like "Problem posting to moderated LISTSERV list" is much more useful to us than "Help me please!"
2. Include any appropriate log entries. LISTSERV keeps logs of everything it does when you are running it in the background (i.e., with './go bg', and without a log excerpt it is often impossible to determine what caused a given error.
3. If LISTSERV crashes and dumps core, please run the debugger on the core file (see FAQ 1.3. in the LISTSERV maintainer's support FAQ) and include the results.
Note: If LISTSERV crashes and does not dump core, you will need to change the 'listserv' user's ulimit settings such that it is allowed to write unlimited core files. In many cases, it is nearly impossible to determine the reason for a crash without a core file.
4. Always send a copy of your site configuration file (with the passwords XXX'ed out).
5. Send along anything else that you think might be helpful in diagnosing the problem.
If you are running an evaluation version of our software, please join the evaluation users' list,
LSTSRV-E@PEACH.EASE.LSOFT.COM, and send your trouble reports there.
If you are running LISTSERV Lite, please join the LISTSERV-LITE mailing list,
LISTSERV-LITE@PEACH.EASE.LSOFT.COM, and send your trouble reports there.
This page is intentionally blank.