The following prerequisites are described in broad terms and Debian package names. The dependencies should be available as packages on most common Unix-like systems, and it should be quite uncommon that you would have to build one of them. Finding the right package name for non-Debian systems is left to the sagacity of the reader.
Up to version 1.37, the Recoll build process used the GNU autotools. Versions 1.38 and later use meson/ninja instead.
If you do not need the GUI, you can avoid all GUI dependencies by disabling its
build: see the configure section further down: -Dqtgui=false
.
Check the Recoll download page for up to date Recoll version information and links to source release files in tar format.
The shopping list follows:
If you start from git repository source code, you will need the git, obviously (package:
git
).On Unix-like systems systems, you will need the meson and ninja commands. (package:
meson
, this will bringninja
as a dependency). Not needed on MacOS systems at the moment.The pkg-config command is needed for configuring the build (package:
pkg-config
).The make command is needed for building the GUI, unneeded if you disable this. (package:
make
).A C++ compiler with at least C++17 compatibility (
g++
orclang
). Recoll Versions 1.33.4 and older only required c++11.The bison command is not generally needed, but might be if you modify the query language yacc source or if some file modification times are not right (package:
bison
).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
-Duserdoc=false
setup option.Development files for Xapian core (
libxapian-dev
).Development files for libxml2 and libxslt (packages:
libxslt1-dev
, which will pulllibxml2-dev
).Development files for zlib (
zlib1g-dev
).Development files for libmagic (
libmagic-dev
).Development files for libaspell (package:
libaspell-dev
). Can be avoided with the-Daspell=false
setup option.If you want to process CHM files, you will need libchm (
libchm-dev
), else you can set the-Dpython-chm=false
option to the setup command.If you want the daemon indexer process to monitor the session for quitting, you need the X11 development library (package:
libx11-dev
). Else use the -Dx11mon=false setup option.If you want to build the GUI: qmake and development files for Qt 5. Else give the
-Dqtgui=false
setup option. Packages:qtbase5-dev
,qttools5-dev-tools
,libqt5webkit5-dev
. Replacelibqt5webkit5-dev
withlibqt5webengine5
if you use -Dwebengine=true.Development files for Python3 (packages:
python3-all-dev
,python3-setuptools
). You can use the-Dpython-module=false
setup option for disabling the build of the Python extension.You may also need libiconv. On Linux systems, the iconv interface is part of libc and you should not need to do anything special.