The following prerequisites are described in broad terms and Debian package names. The dependencies should be available as packages on most common Unix derivatives, and it should be quite uncommon that you would have to build one of them. Finding the right package name for other systems is left to the sagacity of the reader.

If you do not need the GUI, you can avoid all GUI dependencies by disabling its build. (See the configure section further).

The shopping list follows:

  • If you start from git code, you will need the git command (git), and the autoconf, automake and libtool triad (autoconf, automake, libtool). These are not needed for building from tar distributions.

  • The pkg-config command and gettext package are needed for configuring the build (pkg-config, gettext).

  • The make command (make which will actually install GNU make on Linux). If you get strange error messages about dependency tracking from configure, you probably forgot to install make.

  • A C++ compiler with at least C++11 compatibility (g++ or clang).

  • The bison command is not generally needed, but might be if some file modification times are not right.

  • If you want to process CHM files, you will need libchm (libchm-dev), else you can set the --disable-python-chm option to the configure command

  • For building the documentation: the xsltproc command, and the Docbook XML and style sheet files. You can avoid this dependency by disabling documentation building with the --disable-userdoc configure option.

  • Development files for Xapian core (libxapian-dev).


    If you are building Xapian for an older CPU (before Pentium 4 or Athlon 64), you need to add the --disable-sse flag to the configure command. Else all Xapian applications will crash with an illegal instruction error.

  • Development files for libxslt (libxslt1-dev).

  • Development files for zlib (zlib1g-dev).

  • If you want to build the GUI: development files for Qt 5. Else give the --disable-qtgui option to the configure command. I can never remember what package to install to get this, but installing the Qt5 Webkit, (or Qt5 Webengine if you set --enable-webengine) will bring the rest as dependencies (libqt5webkit5-dev or qtwebengine5dev).

  • Development files for Python (python2-dev, python-setuptools, python3-all-dev, python3-setuptools). You can use the --disable-python-module option for disabling the build of the Python extensions).

  • You may also need libiconv. On Linux systems, the iconv interface is part of libc and you should not need to do anything special.

Check the Recoll download page for up to date version information.