Installing Manticore Search as a Docker image

Docker images of Manticore Search are publicly available on Docker Hub built from Manticore Search docker GitHub repository.

To fetch Manticore image execute:

  1. docker pull manticoresearch/manticore

See Using Manticore in Docker for more details about using Manticore in Docker.

Installing Manticore packages on RedHat and CentOS

Supported releases:

  • CentOS 7, RHEL 7, Oracle Linux 7
  • CentOS 8, RHEL 8, Oracle Linux 8, CentOS Stream 8
  • Amazon Linux 2
  • CentOS 9, RHEL 9, AlmaLinux 9

YUM repository

The easiest way to install Manticore in RedHat/Centos is by using our YUM repository:

Install the repository:

  1. sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm

Then install Manticore Search:

  1. sudo yum install manticore manticore-extra

If you are upgrading to Manticore 6 from an older version, it is recommended to remove your old packages first to avoid conflicts caused by the updated package structure:

  1. sudo yum remove manticore*

It won’t remove your data and configuration file.

Development packages

If you prefer “Nightly” (development) versions do:

  1. sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
  2. sudo yum --enablerepo manticore-dev install manticore manticore-extra manticore-columnar-lib manticore-server-core-debuginfo manticore-tools-debuginfo manticore-columnar-lib-debuginfo

Standalone RPM packages

To download standalone RPM files from the Manticore repository, follow the instructions available at https://manticoresearch.com/install/.

More packages you may need

For indexer

If you plan to use indexer to create tables from external sources, you’ll need to make sure you have installed corresponding client libraries in order to make available of indexing sources you want. The line below will install all of them at once; feel free to use it as is, or to reduce it to install only libraries you need (for only mysql sources - just mysql-libs should be enough, and unixODBC is not necessary).

  1. sudo yum install mysql-libs postgresql-libs expat unixODBC

In CentOS Stream 8 you may need to run:

  1. dnf install mariadb-connector-c

if you get error sql_connect: MySQL source wasn't initialized. Wrong name in dlopen? trying to build a plain table from MySQL.

Ukrainian lemmatizer

The lemmatizer requires Python 3.9+. Make sure you have it installed and that it’s configured with --enable-shared.

Here’s how to install Python 3.9 and the Ukrainian lemmatizer in Centos 7/8:

  1. # install Manticore Search and UK lemmatizer from YUM repository
  2. yum -y install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
  3. yum -y install manticore manticore-lemmatizer-uk
  4. # install packages needed for building Python
  5. yum groupinstall "Development Tools" -y
  6. yum install openssl-devel libffi-devel bzip2-devel wget -y
  7. # download, build and install Python 3.9
  8. cd ~
  9. wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
  10. tar xvf Python-3.9.2.tgz
  11. cd Python-3.9*/
  12. ./configure --enable-optimizations --enable-shared
  13. make -j8 altinstall
  14. # update linker cache
  15. ldconfig
  16. # install pymorphy2 and UK dictionary
  17. pip3.9 install pymorphy2[fast]
  18. pip3.9 install pymorphy2-dicts-uk

Installing Manticore in Debian or Ubuntu

Supported releases:

  • Debian

    • 10.0 (Buster)
    • 11.0 (Bullseye)
    • 12.0 (Bookworm)
  • Ubuntu

    • 18.04 (Bionic)
    • 20.04 (Focal)
    • 21.04 (Hirsute Hippo)
    • 22.04 (Ubuntu Jammy)
  • Mint

    • 19
    • 20

APT repository

The easiest way to install Manticore in Ubuntu/Debian/Mint is by using our APT repository

Install the repository:

  1. wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
  2. sudo dpkg -i manticore-repo.noarch.deb
  3. sudo apt update

(install wget if it’s not installed; install gnupg2 if apt-key fails).

Then install Manticore Search:

  1. sudo apt install manticore manticore-extra

If you are upgrading to Manticore 6 from an older version, it is recommended to remove your old packages first to avoid conflicts caused by the updated package structure:

  1. sudo apt remove manticore*

It won’t remove your data and configuration file.

Development packages

If you prefer “Nightly” (development) versions do:

  1. wget https://repo.manticoresearch.com/manticore-dev-repo.noarch.deb
  2. sudo dpkg -i manticore-dev-repo.noarch.deb
  3. sudo apt update
  4. sudo apt install manticore manticore-extra manticore-server-core-dbgsym manticore-tools-dbgsym manticore-columnar-lib-dbgsym

Standalone DEB packages

To download standalone DEB files from the Manticore repository, follow the instructions available at https://manticoresearch.com/install/.

More packages you may need

For indexer

Manticore package depends on zlib and ssl libraries, nothing else is strictly required. However if you plan to use indexer to create tables from external storages you’ll need to install appropriate client libraries. To know what exactly libraries indexer requires run it and look at the top of it’s output:

  1. $ sudo -u manticore indexer
  2. Manticore 3.5.4 13f8d08d@201211 release
  3. Copyright (c) 2001-2016, Andrew Aksyonoff
  4. Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
  5. Copyright (c) 2017-2023, Manticore Software LTD (https://manticoresearch.com)
  6. Built by gcc/clang v 5.4.0,
  7. Built on Linux runner-0277ea0f-project-3858465-concurrent-0 4.19.78-coreos #1 SMP Mon Oct 14 22:56:39 -00 2019 x86_64 x86_64 x86_64 GNU/Linux
  8. Configured by CMake with these definitions: -DCMAKE_BUILD_TYPE=RelWithDebInfo -DDISTR_BUILD=xenial -DUSE_SSL=ON -DDL_UNIXODBC=1 -DUNIXODBC_LIB=libodbc.so.2 -DDL_EXPAT=1 -DEXPAT_LIB=libexpat.so.1 -DUSE_LIBICONV=1 -DDL_MYSQL=1 -DMYSQL_LIB=libmysqlclient.so.20 -DDL_PGSQL=1 -DPGSQL_LIB=libpq.so.5 -DLOCALDATADIR=/var/data -DFULL_SHARE_DIR=/usr/share/manticore -DUSE_ICU=1 -DUSE_BISON=ON -DUSE_FLEX=ON -DUSE_SYSLOG=1 -DWITH_EXPAT=1 -DWITH_ICONV=ON -DWITH_MYSQL=1 -DWITH_ODBC=ON -DWITH_POSTGRESQL=1 -DWITH_RE2=1 -DWITH_STEMMER=1 -DWITH_ZLIB=ON -DGALERA_SOVERSION=31 -DSYSCONFDIR=/etc/manticoresearch

Here you can see mentions of libodbc.so.2, libexpat.so.1, libmysqlclient.so.20, and libpq.so.5.

Below is a reference table with list of all the client libraries for different Debian/Ubuntu versions:

DistrMySQLPostgreSQLXMLpipeUnixODBC
Ubuntu Trusylibmysqlclient.so.18libpq.so.5libexpat.so.1libodbc.so.1
Ubuntu Bioniclibmysqlclient.so.20libpq.so.5libexpat.so.1libodbc.so.2
Ubuntu Focallibmysqlclient.so.21libpq.so.5libexpat.so.1libodbc.so.2
Ubuntu Hirsutelibmysqlclient.so.21libpq.so.5libexpat.so.1libodbc.so.2
Ubuntu Jammylibmysqlclient.so.21libpq.so.5libexpat.so.1libodbc.so.2
Debian Jessielibmysqlclient.so.18libpq.so.5libexpat.so.1libodbc.so.2
Debian Busterlibmariadb.so.3libpq.so.5libexpat.so.1libodbc.so.2
Debian Bullseyelibmariadb.so.3libpq.so.5libexpat.so.1libodbc.so.2
Debian Bookwormlibmariadb.so.3libpq.so.5libexpat.so.1libodbc.so.2

To find packages that provide the libraries you can use, for example apt-file:

  1. apt-file find libmysqlclient.so.20
  2. libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
  3. libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.2.0
  4. libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.3.6

Note that you only need libraries for the types of storages you’re going to use. So if you plan to build tables only from mysql then you might need to install only the MySQL library (in the above case libmysqlclient20).

Finally install the needed packages:

  1. sudo apt-get install libmysqlclient20 libodbc1 libpq5 libexpat1

If you aren’t going to use indexer tool at all, you don’t need to find and install any libraries.

To enable CJK tokenization support, the official packages contain binaries with embedded ICU library and include ICU data file. They are independent from any ICU runtime library which might be available on your system, and can’t be upgraded.

Ukrainian lemmatizer

The lemmatizer requires Python 3.9+. Make sure you have it installed and that it’s configured with --enable-shared.

Here’s how to install Python 3.9 and the Ukrainian lemmatizer on Debian and Ubuntu:

  1. # install Manticore Search and UK lemmatizer from APT repository
  2. cd ~
  3. wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
  4. sudo dpkg -i manticore-repo.noarch.deb
  5. sudo apt -y update
  6. sudo apt -y install manticore manticore-lemmatizer-uk
  7. # install packages needed for building Python
  8. sudo apt -y update
  9. sudo apt -y install wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
  10. # download, build and install Python 3.9
  11. cd ~
  12. wget https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz
  13. tar xzf Python-3.9.4.tgz
  14. cd Python-3.9.4
  15. ./configure --enable-optimizations --enable-shared
  16. sudo make -j8 altinstall
  17. # update linker cache
  18. sudo ldconfig
  19. # install pymorphy2 and UK dictionary
  20. sudo pip3.9 install pymorphy2[fast]
  21. sudo pip3.9 install pymorphy2-dicts-uk