Sympa Logo
Translations of this page:

Installing Sympa

Most pieces of Sympa are written in Perl. It also includes a few dedicated programs written in C.

Obtaining Sympa, related links

The Sympa distribution is available from http://www.sympa.org. All important resources are available there:

  • sources;
  • release notes;
  • .rpm and .deb packages for Linux;
  • mailing list about Sympa (see Mailing lists and support);
  • contributions;
  • ...

Migrating from another software

If you are moving your mailing list software from another software (majordomo, mailman, listserv, lyris, etc) you will need to migrate your data (list configration, list members, list archives) to the Sympa format. You can benefit from scripts written by other Sympa users and listed on our contributions page.

If you extend/fix the scripts, please submit the new version.

Prerequisites

Sympa installation and configuration are relatively easy tasks for experienced UNIX users who have already installed Perl packages.

Note that most of the installation time will involve putting in place the prerequisites, if they are not already on the system. No more than a handful of ancillary tools are needed, and on recent UNIX systems their installation is normally very straightforward. We strongly advise you to perform installation steps and checks in the order listed below; these steps will be explained in detail in later sections.

  • installing a RDBMS
    • MySQL (version 4.1.1 minimum) or MariaDB
    • Oracle
    • PostgreSQL (7.4 minimum)
    • SQLite (3.x)
    • Sybase
  • creating Sympa's Database. Please refer to (Sympa and its database).
  • installing an MTA (Message Transfer Agent): sendmail, postfix, qmail or exim
  • installing a web server (Apache being the most commonly used)
  • installing libxml 2, required by the LibXML Perl module;
  • installing the gettext-devel library;
  • creation of a dedicated UNIX user.

System requirements

You should have a UNIX system that is more or less recent in order to be able to use Sympa. In particular, it is necessary that your system have an ANSI C compiler (in other words, your compiler should support prototypes).

Sympa has been installed and tested at least on the following systems, therefore you should not have any special problems:

  • Linux (various distributions);
  • FreeBSD 2.2.x and 3.x;
  • NetBSD;
  • Digital UNIX 4.x;
  • Solaris 2.5 and 2.6;
  • AIX 4.x;
  • HP-UX 10.20.

For remarks regarding problems specific to your OS, please refer to the FAQ.

Finally, most UNIX systems are now supplied with an ANSI C compiler; if this is not the case, you can install the gcc compiler.

To complete the installation, you should make sure that you have a sufficiently recent release of the sendmail MTA. You may also use postfix, courier, exim or qmail.

Installing Perl and CPAN modules

To be able to use Sympa you must have release 5.8 or later of the Perl language, as well as several CPAN modules.

After make, the sympa_wizard.pl –check may be run run to check for installed versions of required Perl and CPAN modules. If a CPAN module is missing or out of date, this script may install it for you.

You can also download and install CPAN modules yourself. You will find a current release of the Perl interpreter in the nearest CPAN archive. If you do not know where to find a nearby site, use the CPAN multiplexer; it will find one for you.

Required CPAN modules

The following CPAN modules required by Sympa are not included in the standard Perl distribution. At make time, Sympa will prompt you for missing Perl modules and will attempt to install the missing ones automatically; this operation requires root privileges.

Because Sympa features evolve from one release to another, the following list of modules might not be up to date:

  • Archive::Zip
  • CGI
  • Class::Singleton
  • DateTime::Format::Mail
  • DateTime::TimeZone
  • DBI
  • Digest::MD5
  • Email::Simple
  • Encode
  • File::Copy::Recursive
  • File::NFSLock
  • HTML::FormatText
  • HTML::StripScripts::Parser
  • HTML::TreeBuilder
  • IO::File
  • IO::Scalar
  • List::Util::XS
  • Locale::Messages
  • LWP::UserAgent
  • Mail::Address
  • MHonArc
  • MIME::Base64
  • MIME::Charset
  • MIME::EncWords
  • MIME::Lite::HTML
  • MIME::Tools
  • Net::CIDR
  • Net::DNS
  • Proc::ProcessTable
  • Template
  • Term::ProgressBar
  • Text::LineFold
  • Time::HiRes
  • URI::Escape
  • XML::LibXML

Since release 2, Sympa requires an RDBMS to work properly. It stores user subscriptions and preferences in a database. Sympa is also able to extract user data from an external database. These features require that you install database-related Perl libraries. This includes the generic Database interface (DBI) and a Database Driver for your RDBMS (DBD): DBD (DataBase Driver) related to your RDBMS (e.g. DBD-mysql for MySQL);

If you are using Perl earlier than 5.16.0, Unicode::CaseFold is required.

File::Temp should be version 0.22 or higher.

You also might want to install additional modules for optional features:

  • If you want to use web interface (WWSympa), use of FastCGI is strongly recommended. You need to install Perl FastCGI module:
    FCGI.
  • If you plan to interface Sympa with an LDAP directory to build dynamical mailing lists, you need to install Perl LDAP libraries:
    Net::LDAP (perlldap).
  • If you want to Download Zip files of list's Archives, you'll need to install the Perl Module for Archive Management:
    Archive::Zip.
  • SOAP-Lite is required if you are running the Sympa SOAP server.
  • Optional features related to DKIM signature needs mail::DKIM.
    • Mail::DKIM (0.39 or better is required)
      • Net::DNS
  • For S/MIME decryption/encryption/signing/verification,
    • Crypt::SMIME (0.15 or better is required)
    • Crypt::OpenSSL::X509
  • ... and so on.

Creating a UNIX user

The final step prior to installing Sympa: create a UNIX user (and if possible a group) specific to the program. Most of the installation will be carried out with this account. We suggest that you use the name sympa for both user and group.

Numerous files will be located in the Sympa user's login directory. Throughout the remainder of this documentation we shall refer to this login directory as /home/sympa.

Creating the database

Compilation and installation

Before using Sympa, you must customize the sources in order to specify a small number of parameters specific to your installation.

First, extract the sources from the archive file, for example in the ~sympa/src/ directory: the archive will create a directory named sympa-5.3a.10/ where all the useful files and directories will be located. In particular, you will have a doc/ directory containing this documentation in various formats; a sample/ directory containing a few examples of configuration files; a locale/ directory where multilingual messages are stored; and, of course, the src/ directory for the mail robot and the wwsympa directory for the web interface.

Example:

# su -c "gzip -dc sympa-6.2.x.tar.gz | tar xf -" 

Now you can run the installation process:

$ ./configure ; make ;make install

configure will build the Makefile; it recognizes the following command-line arguments:

  • --prefix=PREFIX, Sympa home directory (default /home/sympa);
  • --bindir=DIR, user executables (default /home/sympa/bin);
  • --sbindir=DIR, system admin executables (default /home/sympa/sbin);
  • --libexecdir=DIR, program executables (default /home/sympa/libexec);
  • --sysconfdir=DIR, read-only single-machine data (default /home/sympa/etc);
  • --datadir=DIR, read-only architecture independent data (default /home/sympa/share);
  • --mandir=DIR, man documentation (default /home/sympa/share/man);
  • --enable-fhs, use standard FHS files and directories locations and naming (default is no);
  • --with-confdir=DIR, Directory of Sympa main configuration file (sympa.conf) (default /etc/sympa);
  • --with-cgidir=DIR, CGI scripts (default /home/sympa/bin);
  • --with-localedir=DIR, Internationalization catalogues directory (default /home/sympa/locale);
  • --with-docdir=DIR, Documentations;
  • --with-expldir=DIR, list data directory (default /home/sympa/list_data);
  • --with-spooldir=DIR, application spool directory (default /home/sympa/spool);
  • --with-initdir=DIR, install System V init script (default /etc/rc.d/init.d);
  • --without-initdir, do not install System V init script;
    • This option was introduced by Sympa 6.2.
  • --with-smrshdir=DIR, install symbolic links for Sendmail smrsh (default /etc/smrsh);
  • --without-smrshdir, do not install symbolic links for Sendmail smrsh;
    • These two were introduced by Sympa 6.2.
  • --with-lockdir=DIR, lock files (default /home/sympa/var/lock/subsys);
  • --with-piddir=DIR, .pid files (default /home/sympa/var/run);
  • --with-modulesdir=DIR, Perl modules file installed with Sympa (default /home/sympa/bin);
  • --with-defaultdir=DIR, default configuration files (scenarios and templates also) (default /home/sympa/default);
  • --with-scriptdir=DIR, application scripts (default /home/sympa/bin);
  • --with-staticdir=DIR, static data (default /home/sympa/static_content);
  • --with-perl=FULLPATH, set full path to Perl interpreter;
  • --with-user=LOGIN, set Sympa user name (default sympa);
  • --with-group=LOGIN, set Sympa group name (default sympa);
  • --with-aliases_file=ALIASFILE, set aliases file to be used by Sympa (default /etc/mail/sympa_aliases). Set to none to disable alias management (you can overwrite this value at runtime giving its value in sympa.conf);
    • As of Sympa 6.1.18, this option was renamed from --with-sendmail_aliases.
  • --with-virtual_aliases=ALIASFILE, set postfix virtual file to be used by Sympa (default /etc/mail/sympa_virtual); this is used by the alias_manager.pl script;
    • As of Sympa 6.1.18, this option was removed.
  • --with-newaliases=FULLPATH, set path to sendmail newaliases command (default /usr/bin/newaliases);
  • --with-newaliases_arg=ARGS, set arguments to newaliases command (default NONE); this is used by the alias_manager.pl script;
  • --with-postmap=FULLPATH, set path to postfix postmap command (default /usr/sbin/postmap);
  • --with-postmap_arg=ARGS, set arguments to postfix postmap command (default NONE);
    • As of Sympa 6.1.18, this option was removed.
  • --with-postalias=FULLPATH, set path to postfix postmap command (default /usr/sbin/postalias);
    • This option was introduced by Sympa 6.1.18.
  • --with-makemap=FULLPATH, set path to postfix postmap command (default /usr/bin/makemap);
    • This option was introduced by Sympa 6.1.18.

make will build a few binaries (queue, bouncequeue, familyqueue and sympa_newaliases-wrapper).

make install does the installation job. It recognizes the following option:

  • DESTDIR, can be set in the main Makefile to install sympa in DESTDIR/DIR (instead of DIR). This is useful for building RPM and DEB packages.

Since version 3.3 of Sympa, colors are sympa.conf parameters (see color parameters).

Since version 6.2, default location of sympa.conf was moved to /etc/sympa, instead of /etc. If you are upgrading earlier version of Sympa, move existing sympa.conf and wwsympa.conf to right place before running make install.

If everything goes smoothly, the ~sympa/bin/ directory will contain various Perl programs as well as the queue binary. You will remark that this binary has the set-uid-on-exec bit set (owner is the sympa user): this is deliberate, and necessary to have Sympa run correctly.

Choosing directory locations

All directories are defined in sympa.conf file, which are read by Sympa at runtime. For the default organization of directories, please refer to Organization.

It would, of course, be possible to disperse files and directories to a number of different locations. However, we recommend storing all the directories and files in the sympa user's login directory.

These directories must be created manually. You can use restrictive authorizations if you like, since only programs running with the sympa account will need to access them.

Robot aliases

Web setup

Logs

Sympa keeps a trace of each of its procedures in its log file. However, this requires configuration of the syslogd daemon. By default Sympa will use the local1 facility (syslog parameter in sympa.conf). WWSympa's login behavior is defined by the log_facility parameter (by default the same facility as Sympa).
To this end, a line must be added in the syslogd configuration file (/etc/syslog.conf). For example:

local1.*       /var/log/sympa

Then reload syslogd.

Depending on your platform, your syslog daemon may use either a UDP or a UNIX socket. Sympa's default is to use a UNIX socket; you may change this behavior by editing sympa.conf's ''log_socket_type'' parameter. You can test log feature by using testlogs.pl.

If your system is running syslog-ng, add these lines to your syslog-ng.conf (in some cases, syslog-ng.conf.in):

destination sympa { file ("/var/log/sympa") ; };
log { source(src); filter(f_sympa); destination(sympa); };
filter f_sympa     { facility(local1)  and match('sympa'); };

and restart syslog.

What server configuration?

Below are some practical informations to help to define your mailing list server configuration.

These figures are based on the CRU mailing list service; it has the following caracteristics:

  • 1100 mailing lists,
  • 290.000 list members
  • some very active and old mailing lists; it explains the size of the web archives.

Disk space

  • /home/sympa/list_data/ (5Gb): includes
    • list config files and old list config.xx files
    • a few other small files (msg_count, stats, *.lock)
    • shared documents, when the feature has been actived for one list. This can become huge if list members makes heavy use of this file repository, see <http:www.sympa.org/manual/shared-documents> * /home/sympa/spool/ (1Gb): * /home/sympa/bounces (500Mb on our server) ; it contains archived non delivery reports * /home/sympa/archive/ (62Gb), but we have a couple of very old and active mailing lists
manual_6.0/installing-sympa.txt · Last modified: 2014/10/15 07:23 (external edit)

The Sympa software is provided by RENATER
Faq | News | Contact | Legal Notices