If you can install any or all of the following through the package manager for your system, all the better. Especially Qt is a very big piece of software, but you will most probably be able to find a binary package.
You may have to compile Xapian but this is easy.
The shopping list:
C++ compiler. Up to Recoll version 1.13.04, its absence can manifest itself by strange messages about a missing iconv_open.
Development files for Xapian core.
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 application will
crash with an illegal instruction
error.
Development files for Qt 4 . Recoll has not been tested with Qt 5 yet. Recoll 1.15.9 was the last version to support Qt 3. If you do not want to install or build the Qt Webkit module, Recoll has a configuration option to disable its use (see further).
Development files for X11 and zlib.
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.
Recoll has been built on Linux, FreeBSD, Mac OS X, and Solaris, most versions after 2005 should be ok, maybe some older ones too (Solaris 8 is ok). If you build on another system, and need to modify things, I would very much welcome patches.
Configure options:
--without-aspell
will disable the code for phonetic matching of search
terms.
--with-fam
or
--with-inotify
will enable the code for
real time indexing. Inotify support is enabled by default on
recent Linux systems.
--with-qzeitgeist
will
enable sending Zeitgeist
events about the visited search results, and needs
the qzeitgeist
package.
--disable-webkit
is available
from version 1.17 to implement the result list with a
Qt QTextBrowser instead of a
WebKit widget if you do not or can't depend on the
latter.
--disable-idxthreads
is available
from version 1.19 to suppress multithreading inside the
indexing process. You can also use the run-time
configuration to restrict recollindex
to using a single thread, but the compile-time option
may disable a few more unused locks. This only applies
to the use of multithreading for the core index
processing (data input). The Recoll monitor mode always
uses at least two threads of execution.
--disable-python-module
will
avoid building the Python
module.
--disable-xattr
will prevent
fetching data from file extended attributes. Beyond a
few standard attributes, fetching extended attributes
data can only be useful is some application stores data
in there, and also needs some simple configuration (see
comments in the fields
configuration
file).
--enable-camelcase
will enable
splitting camelCase
words. This
is not enabled by default as it has the unfortunate
side-effect of making some phrase searches quite
confusing: ie, "MySQL manual"
would be
matched by "MySQL manual"
and
"my sql manual"
but not "mysql
manual"
(only inside phrase searches).
--with-file-command
Specify
the version of the 'file' command to use (ie:
--with-file-command=/usr/local/bin/file). Can be useful to
enable the gnu version on systems where the native one is
bad.
--disable-qtgui
Disable the Qt
interface. Will allow building the indexer and the command line
search program in absence of a Qt environment.
--disable-x11mon
Disable
X11 connection monitoring
inside recollindex. Together with --disable-qtgui, this
allows building recoll without
Qt and
X11.
--disable-pic
will compile
Recoll with position-dependant code. This is incompatible with
building the KIO or the Python
or PHP extensions, but might
yield very marginally faster code.
Of course the usual
autoconf configure
options, like --prefix
apply.
Normal procedure:
cd recoll-xxx
configure
make
(practices usual hardship-repelling invocations)
There is little auto-configuration. The
configure script will mainly link one of
the system-specific files in the mk
directory to mk/sysconf
. If your system
is not known yet, it will tell you as much, and you may want
to manually copy and modify one of the existing files (the new
file name should be the output of uname
-s
).
Either type make install
or execute
recollinstall
, in the root
of the source tree. This will copy the commands to
prefix
and the sample configuration files, scripts and other shared
data to
prefix
/bin
.prefix
/share/recoll
If the installation prefix given to
recollinstall is different from either the
system default or the value which was
specified when executing configure (as in
configure --prefix /some/path
), you
will have to set the RECOLL_DATADIR
environment variable to indicate where the shared data is to
be found (ie for (ba)sh:
export RECOLL_DATADIR=/some/path/share/recoll
).
You can then proceed to configuration.