Switch to unified view

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
     --------------------------------------------------------------