|
a/src/INSTALL |
|
b/src/INSTALL |
1 |
|
1 |
|
2 |
Chapter 4. Installation
|
2 |
More documentation can be found in the doc/ directory or at http://www.recoll.org
|
3 |
|
3 |
|
4 |
4.1. Building from source
|
|
|
5 |
|
4 |
|
6 |
4.1.1. Prerequisites
|
5 |
Link: HOME
|
|
|
6 |
Link: PREVIOUS
|
|
|
7 |
Link: NEXT
|
7 |
|
8 |
|
8 |
At the very least, you will need to download and install the
|
9 |
Recoll user manual
|
9 |
xapian core package (Recoll currently uses version 0.9.2), and the
|
10 |
Prev Next
|
10 |
qt runtime and development packages (Recoll development currently
|
|
|
11 |
uses version 3.3.5, but any 3.3 version is probably ok).
|
|
|
12 |
|
11 |
|
13 |
You will most probably be able to find a binary package for qt for
|
12 |
--------------------------------------------------------------------------
|
14 |
your system. You may have to compile Xapian but this is not
|
|
|
15 |
difficult (if you are using FreeBSD, there is a port).
|
|
|
16 |
|
13 |
|
17 |
You may also need libiconv. Recoll currently uses version 1.9
|
14 |
Chapter 4. Installation
|
18 |
(this should not be critical). On Linux systems, the iconv
|
|
|
19 |
interface is part of libc and you should not need to do anything
|
|
|
20 |
special.
|
|
|
21 |
|
15 |
|
|
|
16 |
Table of Contents
|
|
|
17 |
|
|
|
18 |
4.1. Building from source
|
|
|
19 |
|
|
|
20 |
4.2. Installing a prebuilt copy
|
|
|
21 |
|
|
|
22 |
4.3. Configuration overview
|
|
|
23 |
|
|
|
24 |
4.1. Building from source
|
|
|
25 |
|
|
|
26 |
4.1.1. Prerequisites
|
|
|
27 |
|
|
|
28 |
At the very least, you will need to download and install the xapian core
|
|
|
29 |
package (Recoll currently uses version 0.9.2), and the qt runtime and
|
|
|
30 |
development packages (Recoll development currently uses version 3.3.5, but
|
|
|
31 |
any 3.3 version is probably ok).
|
|
|
32 |
|
|
|
33 |
You will most probably be able to find a binary package for qt for your
|
|
|
34 |
system. You may have to compile Xapian but this is not difficult (if you
|
|
|
35 |
are using FreeBSD, there is a port).
|
|
|
36 |
|
|
|
37 |
You may also need libiconv. Recoll currently uses version 1.9 (this should
|
|
|
38 |
not be critical). On Linux systems, the iconv interface is part of libc
|
|
|
39 |
and you should not need to do anything special.
|
|
|
40 |
|
22 |
External file types. Recoll uses external applications to index
|
41 |
External file types. Recoll uses external applications to index some file
|
23 |
some file types. You need to install them for the file types that
|
42 |
types. You need to install them for the file types that you wish to have
|
24 |
you wish to have indexed (these are run-time dependencies. None is
|
43 |
indexed (these are run-time dependencies. None is needed for building
|
25 |
needed for building Recoll):
|
44 |
Recoll):
|
26 |
|
45 |
|
27 |
* PDF: pdftotext is part of the Xpdf package.
|
46 |
* PDF: pdftotext is part of the Xpdf package.
|
28 |
|
47 |
|
29 |
* Postscript: pstotext.
|
48 |
* Postscript: pstotext.
|
30 |
|
49 |
|
|
... |
|
... |
34 |
|
53 |
|
35 |
* dvi: dvips
|
54 |
* dvi: dvips
|
36 |
|
55 |
|
37 |
* djvu: DjVuLibre
|
56 |
* djvu: DjVuLibre
|
38 |
|
57 |
|
39 |
* MP3: Recoll will use the id3info command from the id3lib
|
58 |
* MP3: Recoll will use the id3info command from the id3lib package to
|
40 |
package to extract tag information. Without it, only the
|
59 |
extract tag information. Without it, only the filenames will be
|
41 |
filenames will be indexed.
|
60 |
indexed.
|
42 |
|
61 |
|
43 |
Text, Html, mail folders and Openoffice files are processed
|
62 |
Text, Html, mail folders and Openoffice files are processed internally.
|
44 |
internally.
|
|
|
45 |
|
63 |
|
46 |
--------------------------------------------------------------
|
64 |
4.1.2. Building
|
47 |
|
65 |
|
48 |
4.1.2. Building
|
66 |
Recoll has been built on Linux (redhat7.3, mandriva 2005, Fedora Core 3),
|
|
|
67 |
FreeBSD and Solaris 8. If you build on another system, I would very much
|
|
|
68 |
welcome patches.
|
49 |
|
69 |
|
50 |
Recoll has been built on Linux (redhat7.3, mandriva 2005, Fedora
|
70 |
Depending on the qt configuration on your system, you may have to set the
|
51 |
Core 3), FreeBSD and Solaris 8. If you build on another system, I
|
71 |
QTDIR and QMAKESPECS variables in your environment:
|
52 |
would very much welcome patches.
|
|
|
53 |
|
72 |
|
54 |
Depending on the qt configuration on your system, you may have to
|
|
|
55 |
set the QTDIR and QMAKESPECS variables in your environment:
|
|
|
56 |
|
|
|
57 |
* QTDIR should point to the directory above the one that holds
|
73 |
* QTDIR should point to the directory above the one that holds the qt
|
58 |
the qt include files (ie: qt.h).
|
74 |
include files (ie: qt.h).
|
59 |
|
75 |
|
60 |
* QMAKESPECS should be set to the name of one of the qt mkspecs
|
76 |
* QMAKESPECS should be set to the name of one of the qt mkspecs
|
61 |
subdirectories (ie: linux-g++).
|
77 |
subdirectories (ie: linux-g++).
|
62 |
|
78 |
|
63 |
On many Linux systems, QTDIR is set by the login scripts, and
|
79 |
On many Linux systems, QTDIR is set by the login scripts, and QMAKESPECS
|
64 |
QMAKESPECS is not needed because there is a default link in
|
80 |
is not needed because there is a default link in mkspecs/.
|
65 |
mkspecs/.
|
|
|
66 |
|
81 |
|
67 |
The Recoll configure script does a better job of checking these
|
82 |
The Recoll configure script does a better job of checking these variables
|
68 |
variables after release 1.1.1. Before this, unexplained errors
|
83 |
after release 1.1.1. Before this, unexplained errors will occur during
|
69 |
will occur during compilation if the environment is not set up.
|
84 |
compilation if the environment is not set up. Also, for 1.1.0 the qmake
|
70 |
Also, for 1.1.0 the qmake command should be in your PATH (later
|
85 |
command should be in your PATH (later releases can also find it in
|
71 |
releases can also find it in $QTDIR/bin).
|
86 |
$QTDIR/bin).
|
72 |
|
87 |
|
73 |
Normal procedure:
|
88 |
Normal procedure:
|
74 |
|
89 |
|
75 |
cd recoll-xxx
|
90 |
cd recoll-xxx
|
76 |
configure
|
91 |
configure
|
77 |
make
|
92 |
make
|
78 |
(practises usual hardship-repelling invocations)
|
93 |
(practises usual hardship-repelling invocations)
|
79 |
|
94 |
|
80 |
|
95 |
|
81 |
There little autoconfiguration. The configure script will mainly
|
96 |
There little autoconfiguration. The configure script will mainly link one
|
82 |
link one of the system-specific files in the mk directory to
|
97 |
of the system-specific files in the mk directory to mk/sysconf. If your
|
83 |
mk/sysconf. If your system is not known yet, it will tell you as
|
98 |
system is not known yet, it will tell you as much, and you may want to
|
84 |
much, and you may want to manually copy and modify one of the
|
99 |
manually copy and modify one of the existing files (the new file name
|
85 |
existing files (the new file name should be the output of uname
|
100 |
should be the output of uname -s).
|
86 |
-s).
|
|
|
87 |
|
101 |
|
88 |
--------------------------------------------------------------
|
102 |
4.1.3. Installation
|
89 |
|
103 |
|
90 |
4.1.3. Installation
|
|
|
91 |
|
|
|
92 |
Either type make install or execute recollinstall prefix, in the
|
104 |
Either type make install or execute recollinstall prefix, in the root of
|
93 |
root of the source tree. This will copy the commands to prefix/bin
|
105 |
the source tree. This will copy the commands to prefix/bin and the sample
|
94 |
and the sample configuration files, scripts and other shared data
|
106 |
configuration files, scripts and other shared data to prefix/share/recoll.
|
95 |
to prefix/share/recoll.
|
|
|
96 |
|
107 |
|
97 |
You can then proceed to configuration.
|
108 |
You can then proceed to configuration.
|
98 |
|
109 |
|
99 |
--------------------------------------------------------------
|
110 |
--------------------------------------------------------------------------
|
100 |
|
111 |
|
101 |
4.2. Installing a prebuilt copy
|
112 |
Prev Home Next
|
102 |
|
113 |
Customising the search interface Installing a prebuilt copy
|
103 |
4.2.1. Installing through a package system
|
|
|
104 |
|
|
|
105 |
If you are lucky enough to be using a port system or a prebuilt
|
|
|
106 |
package (RPM or other), just follow the usual procedure, and have
|
|
|
107 |
a look at the configuration section.
|
|
|
108 |
|
|
|
109 |
--------------------------------------------------------------
|
|
|
110 |
|
|
|
111 |
4.2.2. Installing a prebuilt Recoll
|
|
|
112 |
|
|
|
113 |
The unpackaged binary versions are just compressed tar files of a
|
|
|
114 |
build tree, where only the useful parts were kept (executables and
|
|
|
115 |
sample configuration).
|
|
|
116 |
|
|
|
117 |
The executable binary files are built with a static link to
|
|
|
118 |
libxapian and libiconv, to make installation easier (no
|
|
|
119 |
dependencies). However, this also means that you cannot change the
|
|
|
120 |
versions which are used.
|
|
|
121 |
|
|
|
122 |
After extracting the tar file, you can proceed with installation
|
|
|
123 |
as if you had built the package from source.
|
|
|
124 |
|
|
|
125 |
--------------------------------------------------------------
|
|
|
126 |
|
|
|
127 |
4.3. Configuration overview
|
|
|
128 |
|
|
|
129 |
There are two sets of configuration files. The system-wide files
|
|
|
130 |
are kept in a directory named like
|
|
|
131 |
/usr/[local/]share/recoll/examples, they define default values for
|
|
|
132 |
the system. A parallel set of files exists in the .recoll
|
|
|
133 |
directory in your home (this can be changed with the
|
|
|
134 |
RECOLL_CONFDIR environment variable. The database is also kept in
|
|
|
135 |
.recoll by default, (this can be changed by a configuration
|
|
|
136 |
parameter).
|
|
|
137 |
|
|
|
138 |
If the .recoll directory does not exist when recoll or recollindex
|
|
|
139 |
are started, it will be created with a set of empty configuration
|
|
|
140 |
files. recoll will give you a chance to edit the configuration
|
|
|
141 |
file before starting indexation. recollindex will proceed
|
|
|
142 |
immediately.
|
|
|
143 |
|
|
|
144 |
Most of the parameters specific to the recoll GUI are set through
|
|
|
145 |
the Preferences menu and stored in the standard QT place
|
|
|
146 |
($HOME/.qt/recollrc). You probably do not want to edit this by
|
|
|
147 |
hand.
|
|
|
148 |
|
|
|
149 |
For other options, Recoll uses text configuration files. You will
|
|
|
150 |
have to edit them by hand for now (there is still some hope for a
|
|
|
151 |
GUI configuration tool in the future). The most accurate
|
|
|
152 |
documentation for the configuration parameters is given by
|
|
|
153 |
comments inside the default files, and we will just give a general
|
|
|
154 |
overview here.
|
|
|
155 |
|
|
|
156 |
All configuration files share the same format. For exemple, a
|
|
|
157 |
short extract of the main configuration file might look as
|
|
|
158 |
follows:
|
|
|
159 |
|
|
|
160 |
# Space-separated list of directories to index.
|
|
|
161 |
topdirs = ~/docs /usr/share/doc
|
|
|
162 |
|
|
|
163 |
[~/somedirectory-with-utf8-txt-files]
|
|
|
164 |
defaultcharset = utf-8
|
|
|
165 |
|
|
|
166 |
|
|
|
167 |
There are three kinds of lines:
|
|
|
168 |
|
|
|
169 |
* Comment (starts with #) or empty.
|
|
|
170 |
|
|
|
171 |
* Parameter affectation (name = value).
|
|
|
172 |
|
|
|
173 |
* Section definition ([somedirname]).
|
|
|
174 |
|
|
|
175 |
Section lines allow redefining some parameters for a directory
|
|
|
176 |
subtree. Some of the parameters used for indexation are looked up
|
|
|
177 |
hierarchically from the more to the less specific. Not all
|
|
|
178 |
parameters can be meaningfully redefined, this is specified for
|
|
|
179 |
each in the next section.
|
|
|
180 |
|
|
|
181 |
The tilde character (~) is expanded in file names to the name of
|
|
|
182 |
the user's home directory.
|
|
|
183 |
|
|
|
184 |
White space is used for separation inside lists. Elements with
|
|
|
185 |
embedded spaces can be quoted using double-quotes.
|
|
|
186 |
|
|
|
187 |
--------------------------------------------------------------
|
|
|
188 |
|
|
|
189 |
4.3.1. Main configuration file
|
|
|
190 |
|
|
|
191 |
recoll.conf is the main configuration file. It defines things like
|
|
|
192 |
what to index (top directories and things to ignore), and the
|
|
|
193 |
default character set to use for document types which do not
|
|
|
194 |
specify it internally.
|
|
|
195 |
|
|
|
196 |
The default configuration will index your home directory. If this
|
|
|
197 |
is not appropriate, use recoll to copy the sample configuration,
|
|
|
198 |
click Cancel, and edit the configuration file before restarting
|
|
|
199 |
the command. This will start the initial indexation, which may
|
|
|
200 |
take some time.
|
|
|
201 |
|
|
|
202 |
Paramers:
|
|
|
203 |
|
|
|
204 |
topdirs
|
|
|
205 |
|
|
|
206 |
Specifies the list of directories to index (recursively).
|
|
|
207 |
|
|
|
208 |
skippedNames
|
|
|
209 |
|
|
|
210 |
A space-separated list of patterns for names of files or
|
|
|
211 |
directories that should be completely ignored. The list
|
|
|
212 |
defined in the default file is:
|
|
|
213 |
|
|
|
214 |
*~ #* bin CVS Cache caughtspam tmp
|
|
|
215 |
|
|
|
216 |
The list can be redefined for subdirectories, but is only
|
|
|
217 |
actually changed for the top level ones in topdirs.
|
|
|
218 |
|
|
|
219 |
The top-level directories are not affected by this list
|
|
|
220 |
(that is, a directory in topdirs might match and would
|
|
|
221 |
still be indexed).
|
|
|
222 |
|
|
|
223 |
The list in the default configuration does not exclude
|
|
|
224 |
hidden directories (names beginning with a dot), which
|
|
|
225 |
means that it may index quite a few things that you do not
|
|
|
226 |
want. On the other hand, mail user agents like thunderbird
|
|
|
227 |
usually store messages in hidden directories, and you
|
|
|
228 |
probably want this indexed. One possible solution is to
|
|
|
229 |
have .* in skippedNames, and add things like
|
|
|
230 |
~/.thunderbird or ~/.evolution in topdirs.
|
|
|
231 |
|
|
|
232 |
loglevel
|
|
|
233 |
|
|
|
234 |
Verbosity level for recoll and recollindex. A value of 4
|
|
|
235 |
lists quite a lot of debug/information messages. 2 only
|
|
|
236 |
lists errors.
|
|
|
237 |
|
|
|
238 |
logfilename
|
|
|
239 |
|
|
|
240 |
Where should the messages go. 'stderr' can be used as a
|
|
|
241 |
special value.
|
|
|
242 |
|
|
|
243 |
filtersdir
|
|
|
244 |
|
|
|
245 |
A directory to search for the external filter scripts used
|
|
|
246 |
to index some types of files. The value should not be
|
|
|
247 |
changed, except if you want to modify one of the default
|
|
|
248 |
scripts. The value can be redefined for any subdirectory.
|
|
|
249 |
|
|
|
250 |
indexstemminglanguages
|
|
|
251 |
|
|
|
252 |
A list of languages for which the stem expansion databases
|
|
|
253 |
will be built. See recollindex(1) for possible values. You
|
|
|
254 |
can add a stem expansion database for a different language
|
|
|
255 |
by using recollindex -s, but it will be deleted during the
|
|
|
256 |
next indexation. Only languages listed in the
|
|
|
257 |
configuration file are permanent.
|
|
|
258 |
|
|
|
259 |
iconsdir
|
|
|
260 |
|
|
|
261 |
The name of the directory where recoll result list icons
|
|
|
262 |
are stored. You can change this if you want different
|
|
|
263 |
images.
|
|
|
264 |
|
|
|
265 |
dbdir
|
|
|
266 |
|
|
|
267 |
The name of the Xapian database directory. It will be
|
|
|
268 |
created if needed when the database is initialized.
|
|
|
269 |
|
|
|
270 |
defaultcharset
|
|
|
271 |
|
|
|
272 |
The name of the character set used for files that do not
|
|
|
273 |
contain a character set definition (ie: plain text files).
|
|
|
274 |
This can be redefined for any subdirectory. If it is not
|
|
|
275 |
set at all, the character set used is the one defined by
|
|
|
276 |
the nls environment (LC_ALL, LC_CTYPE, LANG), or iso8859-1
|
|
|
277 |
if nothing is set.
|
|
|
278 |
|
|
|
279 |
guesscharset
|
|
|
280 |
|
|
|
281 |
Decide if we try to guess the character set of files if no
|
|
|
282 |
internal value is available (ie: for plain text files).
|
|
|
283 |
This does not work well in general, and should probably
|
|
|
284 |
not be used.
|
|
|
285 |
|
|
|
286 |
usesystemfilecommand
|
|
|
287 |
|
|
|
288 |
Decide if we use the file -i system command as a final
|
|
|
289 |
step for determining the mime type for a file (the main
|
|
|
290 |
procedure uses suffix associations as defined in the
|
|
|
291 |
mimemap file). This can be useful for files with
|
|
|
292 |
suffixless names, but it will also cause the indexation of
|
|
|
293 |
many bogus "text" files.
|
|
|
294 |
|
|
|
295 |
indexallfilenames
|
|
|
296 |
|
|
|
297 |
Recoll indexes file names in a special section of the
|
|
|
298 |
database to allow specific file names searches using wild
|
|
|
299 |
cards. This parameter decides if file name indexing is
|
|
|
300 |
performed only for files with mime types that would
|
|
|
301 |
qualify them for full text indexation, or for all files
|
|
|
302 |
inside the selected subtrees, independant of mime type.
|
|
|
303 |
|
|
|
304 |
--------------------------------------------------------------
|
|
|
305 |
|
|
|
306 |
4.3.2. The mimemap file
|
|
|
307 |
|
|
|
308 |
mimemap specifies the file name extension to mime type mappings.
|
|
|
309 |
|
|
|
310 |
For file names without an extension, or with an unknown one, the
|
|
|
311 |
system's file -i command will be executed to determine the mime
|
|
|
312 |
type (this can be switched off inside the main configuration
|
|
|
313 |
file).
|
|
|
314 |
|
|
|
315 |
mimemap also has a list of extensions which should be ignored
|
|
|
316 |
totally (to avoid losing time by executing file for things that
|
|
|
317 |
certainly should not be indexed).
|
|
|
318 |
|
|
|
319 |
The mappings can be specified on a per-subtree basis, which may be
|
|
|
320 |
useful in some cases. Example: gaim logs have a .txt extension but
|
|
|
321 |
should be handled specially, which is possible because they are
|
|
|
322 |
usually all located in one place.
|
|
|
323 |
|
|
|
324 |
mimemap also has a recoll_noindex variable which is a list of
|
|
|
325 |
suffixes. Matching files will be skipped (avoids unnecessary
|
|
|
326 |
decompressions or file executions). This is partially redundant
|
|
|
327 |
with skippedNames in the main configuration file, with two
|
|
|
328 |
differences: it will not affect directories, and it can be changed
|
|
|
329 |
for any subdirectory.
|
|
|
330 |
|
|
|
331 |
--------------------------------------------------------------
|
|
|
332 |
|
|
|
333 |
4.3.3. The mimeconf file
|
|
|
334 |
|
|
|
335 |
mimeconf specifies how the different mime types are handled for
|
|
|
336 |
indexation, and for display.
|
|
|
337 |
|
|
|
338 |
Changing the indexation parameters is probably not a good idea
|
|
|
339 |
except if you are a Recoll developper.
|
|
|
340 |
|
|
|
341 |
You may want to adjust the external viewers defined in (ie: html
|
|
|
342 |
is either previewed internally or displayed using firefox, but you
|
|
|
343 |
may prefer mozilla, your openoffice.org program might be named
|
|
|
344 |
oofice instead of openoffice ...). Look for the [view] section.
|
|
|
345 |
|
|
|
346 |
You can also change the icons which are displayed by recoll in the
|
|
|
347 |
result lists (the values are the basenames of the png images
|
|
|
348 |
inside the iconsdir directory (specified in recoll.conf).
|
|
|
349 |
|
|
|
350 |
--------------------------------------------------------------
|
|
|