- Home
- Download
- Contribute
- Support
- Cyrus SASL

# Supported Platforms and System Requirements

Cyrus IMAP supports the following platforms;

- FreeBSD

- All reasonably recent versions of Linux, including but not limited to the following distributions, in no particular order other than alphabetic;

  > - CentOS
  > - Debian
  > - Fedora
  > - Gentoo
  > - openSUSE
  > - Red Hat Enterprise Linux
  > - SUSE Linux

  > Should your Linux distribution not be listed here, please refer to Support/Community for ways of contacting the Cyrus IMAP team.

- Solaris

By reasonably recent versions of Linux, we intend to indicate the Cyrus project can keep up with the latest distribution release earmarked stable.

## Building Cyrus IMAP

In this section, we only list the aspects of building Cyrus IMAP of particular interest to most common deployment scenarios. For more information on all `configure` options with full details, we refer you to `./configure --help`.

## Required Software Components

The following software components are required for Cyrus IMAP to build at all, with minimal functionality;

- `autoconf`
- `automake`
- `zlib` (Development Headers)

Obviously, the list is not complete

## Recommended Software Components

We recommend you consider building Cyrus IMAP with the following software components included;

### Idled Support

To enable near real-time client updates through IMAP IDLE (as described in RFC 2177), configure Cyrus IMAP with the `--enable-idled` option.

### Murder Support

To enable horizontal scalability, Cyrus IMAP supports the distribution of mailboxes across Cyrus IMAP servers in a Murder setup. To enable murder support in Cyrus IMAP, configure Cyrus IMAP with the `--enable-murder` option.

### Replication Support

To enable replication support in Cyrus IMAP, configure Cyrus IMAP with the `--enable-replication` option.

Obviously, the list is not complete

## Recommended Software Components Enabled by Default

### Sieve Support

Without any additional effort, Sieve support is already enabled by default. To disable Sieve, use the `--disable-sieve` option to `configure`.

### Optional Software Components

When including the following software components during the build process, and providing the options listed here, additional optional functionality can be implemented;

Berkeley DB (Development headers)

To enable using Berkely DB as a database backend, include the Berkeley DB development headers and make sure to configure Cyrus IMAP with `--with-bdb`.

Berkeley DB Versions and Conversion

The Cyrus IMAP `configure` process attempts to automatically detect and use the latest Berkeley DB technology available on the system. This may, however, not be the same version on your production systems. Since database conversions between versions of the Berkeley DB technology are particularly difficult and therefor NOT considered fully supported, we recommend you do NOT use Berkeley DB.

Should the Berkeley DB development headers be installed in a non-standard location, or should you need a specific version when multiple versions are available on the system, please consider using any of the following options;

    --with-bdb=DIR            use Berkeley DB (in DIR) [yes]
    --with-bdb-libdir=DIR     Berkeley DB lib files are in DIR
    --with-bdb-incdir=DIR     Berkeley DB include files are in DIR</screen>

MySQL (Development headers)

To enable using MySQL as a database server backend, include the MySQL development headers and make sure to configure Cyrus IMAP with `--with-mysql`.

Should MySQL - the client libraries or the development headers - be installed in a non-standard location, please consider using any of the following options;

    --with-mysql=DIR          use MySQL (in DIR) [no]
    --with-mysql-libdir=DIR   MySQL lib files are in DIR
    --with-mysql-incdir=DIR   MySQL include files are in DIR

PostgreSQL (Development headers)

To enable using PostgreSQL as a database server backend, include the PostgreSQL development headers and make sure to configure Cyrus IMAP with `--with-pgsql`.

Should PostgreSQL - the client libraries or the development headers - be installed in a non-standard location, please consider using any of the following options;

    --with-pgsql=DIR          use PostgreSQL (in DIR) [no]
    --with-pgsql-libdir=DIR   Pgsql lib files are in DIR
    --with-pgsql-incdir=DIR   Pgsql include files are in DIR

Obviously, the list is not complete