# Установка

## Требования к SQL базе даных

Если вы хотите скомпилировать DataparkSearch с одной из поддерживаемых SQL баз данных, вы должны установить эту SQL базу данных до начала установки DataparkSearch.

Начиная с версии 3.2 возможно использовать несколько различных SQL баз данных одновременно.

Вы также должны иметь права на создание новой базы данных и/или записи в уже существующую базу данных.

О MySQL: Если вы хотите собрать DataparkSearch с поддержкой MySQL, вам потребуется версия 4.1 или старше. Библиотека `libz` должна быть также установлена для успешной компиляции DataparkSearch с поддержкой MySQL. Пользователи Linux могут установить ее из zlib-devel RPM.

О PostgreSQL: Если вы хотите собрать DataparkSearch с поддержкой PostgreSQL, вам потребуется версия 7.3.x или старше. PostgreSQL 8.1 рекомендуется для лучшей производительности.

Об iODBC: работает с iodbc-2.50.22a.

Об unixODBC: работает с unixODBC-1.7.

Об InterBase:

- Работает с Interbase 4.0.

- Работает с InterBase CS 6.0.

- Работает с FirebirdCS-0.9-4.

О FreeTDS: Работает с версий 0.52 и с MS SQL 7.0.

Об Oracle8: Работает с версией 8.0.5.X.

Об Oracle8i: Работает с версией 8.1.6 R2 EE.

## Поддерживаемые операционные системы

Мы используем GNU Autoconf, что позволяет скомпилировать DataparkSearch почти на всех современных UNIX системах, имеющих копилятор C. Разработка ведётся на FreeBSD 5.x с использованием PostgreSQL 8.1.

На даенный момент известно об успешных установках DataparkSearch на следующих опреационных системах:

- CentOS 3.1, CentOS 3.3

- Debian GNU/Linux (i386)

- FreeBSD 2.2.x, 3.x, 4.x, 5.x, 6.x

- Linux Fedora Core-1, Kernel 2.4.22-1.2174

- Linux Mandrake 10.2

- Linux Red Hat 8.0, 9.0

- Solaris 9

- Solaris 10 x86, gcc

- Ubuntu Linux 6.10

- Gentoo Linux 2007.0 amd64

Мы надеемся, что DataparkSearch будет работать и на других Unix платформах. Пожалуйста, сообщайте об успешных установках на других платформах по адресу maxime@maxime.net.ru.

О NFS: Замечены проблемы при запуске DataparkSearch поверх NFS v4 на Linux 2.6.17. Однако все прекрасно работает при использовании на этой системе NFS v3.

## Инструментарий, необходимый для установки

Для компиляции и установки DataparkSearch из исходников вам потребуется следующий инструментарий:

- `Bzip2` для распаковки дисрибутива.

- `tar` для извлечения дерева исходников из дистрибутива. Рекомендуется GNU tar.

- Компилятор ANSI C. Рекомендуется GNU gcc.

- Программа `make`. GNU make рекомендуется, а зачастую и необходима.

- Потоковый редактор `sed`.

- Интерпретатор языка `perl`, если при инсталяции будет использоваться скрипт `install.pl`.

- Для создания документации из XML-исходников, вам потребуется также установить `jade` или `openjade`.

  Для создания документации на английском языке в PDF формате, вам также потребуется `jadetex`. Используйте команду `make book.pdf` в поддиректории `doc/` чтобы скомпилировать её.

## Инсталяция DataparkSearch

1. Разархивируйте дистрибутив и перейдите а корневую директорию распакованного дерева исходников.

   `tar -xyf dpsearch-x.x.tar.bz2`

2. Для упрощения процесса конфигурирования мы добавили скрипт конфигурации `install.pl`. Запустите `install.pl` и отвечая на вопросы, выберите нужную конфигурацию DataparkSearch После того, как вы выберите все опции, этот скрипт запустит `./configure` с выбранными вами ключами. Он также создаст файл `create install.options` содержащий ваши настройки, и которые будут использованы при следующих запусках этого скрипта. После того, как процес конфигурирования будет завершен, создайте и проинсталируйте DataparkSearch как описано в разделе 3.

   В случае, если вы желаете сконфигурировать DataparkSearch вручную без использования скрипта конфигурирования, проделайте следующие шаги:

   Если нужна поддержка SQL базы данных:

   `sh$ ./configure --with-mysql`

   или

   `sh$ ./configure --with-pgsql`

   или другим ключом, соответствующим выбраной базе данных,

   или с несколькими базами:

   `sh$ ./configure --with-mysql --with-pgsql --with-msql --with-freetds`

   По умолчанию, DataparkSearch устанавливается в директорию `/usr/local/dpsearch` и поддериктории:

   Поддиректория | Содержимое
   bin | `search.cgi`, `storedoc.cgi`, `dps-config`
   lib | `libdpsearch.a(so)`, `libdpcharset.a(so)`
   sbin | `indexer`, `cached`, `run-splitter`, `searchd`, `splitter`, `stored`
   etc | `indexer.conf-dist, search.htm-dist`, `langmap.conf-dist`, `searchd.conf-dist`, `stopwords.conf-dist`, `stored.conf-dist`, `storedoc.htm-dist`
   share | Документация и sql-скрипты

   Если у вас нет прав для создания этой директории, или вы хотите установить DataparkSearch в другую директорию, используйте для `configure` ключ `--prefix`, например,

   `./configure --prefix=/user/home/data --with-mysql`

   Для установки DataparkSearch с поддержкой HTTPS, используйте следующий ключ для `configure`:

   `./configure --with-openssl`

   или, в случае, когда, библиотека OpenSSL установлена не в стандартной пути:

   `./configure --with-openssl=/path/to/library`

   Пожалйста, имейте в виду, что установка библиотеки OpenSSL на вашем компьютере необходима для поддержки HTTPS.

   Вы можете видеть все ключи, запустив `./configure --help`

   Если вы хотите передать для компилятора C некоторые специфицеские ключи (например, `'-O7 -mpentium'` создания оптимизированного кода под процессор Pentium, если используется компилятор egcs/pgcc), это можно сделать при помощи следующей команды

   `sh$ CFLAGS="-O7 -mpentium"`

   до запуска `configure`.

   Для компиляции DataparkSearch под FreeBSD с поддержкой `Solid` в старом aout формате, используйте

   `sh$ CFLAGS="-aout"`

   до запуска `configure`.

   Для компиляции DataparkSearch под FreeBSD с aout InterBase используйте

   `sh$ CFLAGS="-aout -static"`

   до запуска `configure`.

   Вы можете также указать `--enable-pthreads` для компиляции многопоточной версии `indexer`.

   Для включения пооддержки отладчика памяти DMALLOC используйте ключ `--enable-dmalloc`.

   Кодировки euc-kr, big5, gb2312, tscii, gujarati и shift-jis не поддерживаются по умолчанию. Для включения поддержки используйте ключ `--with-extra-charsets`.

   Для включения поддержки всех кодовых страниц, используйте:

   `./configure --with-extra-charsets=all`

   Для включения поддержки только какой-то одной кодовой страницы:

   `./configure --with-extra-charsets=tscii`

   Для включения поддержки симейства кодировок китайского или японского языков:

   `./configure --with-extra-charsets=chinese` или `./configure --with-extra-charsets=japanese`

   Чтобы включить поддержку нескольких нужных кодовых страниц, указывайте их через запятую:

   `./configure --with-extra-charset=chinese,gujarati`

   Если у вас возникли трудности с конфигурированием, пожалуйста, смотрите .

3. Скомпилируйте и установите DataparkSearch.

   `sh$ make`

   `sh$ make install`

   Если у вас возникли трудности с компиляцией, пожалуйста, смотрите .

4. Создайте базу данных `search` (только для SQL баз данных).

   Вы можете использовать существующую базу данных, в этом случае пропустите этот пункт.

   MySQL:

   `sh$ mysqladmin create search`

   PostgreSQL:

   `sh$ createdb search`

   Для других баз данных см. документацию на соответствующую базу данных.

5. Создайте файлы конфигурации.

   Для этого в директории конфигурационных файлов ( по умолчанию это `/usr/local/dpsearch/etc/`) скопируйте `indexer.conf-dist` в `indexer.conf` и `search.htm-dist` в `search.htm`. Затем отредактируйте `indexer.conf` и `search.htm` согласно вашим потребностям. В основном вам только необходимо отредактировать команду `DBAddr` в обоих файлах указав соединение с SQL-сервером и необходимый dbmode.

6. Создайте sql-таблицы

   Выполните команду:

   `sh$ indexer -Ecreate`

   `indexer` автоматически создаст все нужные таблицы согласно dbmode, указанному в `indexer.conf`.

7. Установка программы поиска

   Скопируйте `search.cgi` в `cgi-bin` директорию вашего веб-сервера или создайте алиас в Apache на поддиректорию `bin/` DataparkSearch.

## Возможные проблемы установки

- Каждый раз, когда вы запускаете `configure`, вы должны опять запустить `make` для перекомпиляции.

  Во избежание использования информации о предыдущей конфигурации или устаревших объектных файлов, выполните эти команды перед повторным запуском `configure`:

  `sh$ rm config.cache`

  `sh$ make clean`

- Завершение компиляции с ошибками иногда может быть связана с некорректной версией `make`. Работа стандартной команды `make` под Solaris, FreeBSD, OpenBSD немного отличается от GNU make. Попробуйте использовать GNU make вместо стандартной версии, часто она называется `gmake`.

  GNU `make` версии 3.77 проверена и работает.

- Если при запуске Apache c модулем mod_dpsearch вы получаете такое сообщение об ошибке: `Undefined symbol "pthread_join"` (или что-то подобное относящееся к pthreads), попробуйте добавить следующую команду в файл конфигурации `httpd.conf` до загрузки `mod_dpsearch.so`:

  `LoadFile /usr/lib/libpthread.so`

Если информация выше не помогла вам, пожалуйста, отправьте описание вашей проблемы на список рассылки dataparksearch@yahoogroups.com (пажалуйста, при возможности пишите на английском).

## Простая рутина использования

Перед первым запуском `indexer`, вам необходимо указать пространство индексирования (см. ). В простом случае, когда вам необходимо индексировать один сайт, необходимов добавить команду `Server`, аналогичную указанной ниже в ваш файл конфигурации `indexer.conf`:

    Server http://www.server.ext/

Запустите `indexer` для индексирвоания ваших данных и записи информации об URL:

`sh$ /usr/local/dpsearch/sbin/indexer -W`

## Регистрация установки

Если вы используете DataparkSearch для организации поиска на публично доступном веб-сервере, вы можете сообщить нам об этом на нашем сайте, на странице наших пользователей.