RHEL, Centos, Alma, Amazon, Oracle 系统安装
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
sudo yum install manticore manticore-extra
如果你正在从旧版本升级,建议先删除旧的包,以避免由于更新后的包结构引起的冲突。
sudo yum --setopt=tsflags=noscripts remove manticore*
这不会删除你的数据。如果你对配置文件进行了更改,它将被保存到 /etc/manticoresearch/manticore.conf.rpmsave
。
如果你正在寻找单独的软件包,请在这里找到它们。
有关安装的更多详细信息,请参见以下内容。
Debian, Ubuntu, Mint 系统
wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
sudo dpkg -i manticore-repo.noarch.deb
sudo apt update
sudo apt install manticore manticore-extra
MacOS 系统安装
brew install manticoresoftware/tap/manticoresearch manticoresoftware/tap/manticore-extra
windows 安装
- 下载 Manticore Search 安装程序 并运行它。按照安装说明进行操作。
- 选择要安装到的目录。
- 选择要安装的组件。我们建议安装所有组件。
- Manticore带有一个在RT模式下预配置的manticore.conf文件。不需要额外的配置。
Docker 安装
用于沙盒环境的一行命令(不建议用于生产环境):
docker run -e EXTRA=1 --name manticore --rm -d manticoresearch/manticore && echo "Waiting for Manticore docker to start. Consider mapping the data_dir to make it start faster next time" && until docker logs manticore 2>&1 | grep -q "accepting connections"; do sleep 1; echo -n .; done && echo && docker exec -it manticore mysql && docker stop manticore
这条命令运行Manticore容器并等待其启动。启动后,它启动一个MySQL客户端会话。当你退出MySQL客户端时,Manticore容器停止运行并被删除,不会留下任何存储的数据。有关如何在实际生产环境中使用Manticore的详细信息,请参考以下部分。
用于生产环境:
docker run -e EXTRA=1 --name manticore -v $(pwd)/data:/var/lib/manticore -p 127.0.0.1:9306:9306 -p 127.0.0.1:9308:9308 -d manticoresearch/manticore
此设置将启用Manticore列式库和Manticore Buddy,并使用./data/作为指定的数据目录,在端口 9306 上运行 Manticore 以进行 MySQL 连接,以及在端口 9308 上运行Manticore 以进行其他所有连接。
用 Docker image 来安装 Manticore Search
Manticore Search 的 Docker 镜像可以在 Docker Hub 上公开访问,从 Manticore Search 的 docker GitHub 存储库构建而成。
要获取 Manticore 镜像,请运行以下命令:
docker pull manticoresearch/manticore
有关在Docker中使用 Manticore 的更多信息,请参见“在Docker中使用Manticore”部分。
在 RedHat 和 CentOS 上安装 Manticore 软件包
支持的发行版本:
- 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仓库是在RedHat/CentOS上安装Manticore的最简单方法:
安装仓库:
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
然后安装Manticore Search:
sudo yum install manticore manticore-extra
如果你从旧版本升级到Manticore 6,建议首先删除旧的软件包,以避免由于更新后的包结构引起的冲突:
sudo yum remove manticore*
这不会删除你的数据和配置文件。
开发包
如果你更喜欢使用“Nightly”(开发)版本,执行以下命令:
sudo yum -y install https://repo.manticoresearch.com/manticore-repo.noarch.rpm && \
sudo yum -y --enablerepo manticore-dev install manticore manticore-extra manticore-common manticore-server manticore-server-core manticore-tools manticore-executor manticore-buddy manticore-backup manticore-columnar-lib manticore-server-core-debuginfo manticore-tools-debuginfo manticore-columnar-lib-debuginfo manticore-icudata
独立的 RPM 软件包
要从Manticore存储库下载独立的RPM文件,请按照 https://manticoresearch.com/install/ 上的说明进行操作。
可能需要的其他软件包
对于索引器
如果计划使用索引器从外部源创建表,你需要确保已安装相应的客户端库,以便使用你想要的索引源。下面的命令将一次性安装所有这些库;可以按原样使用,或者将其缩小为仅安装你需要的库(对于仅使用mysql源,只需安装mysql-libs即可,不需要unixODBC)。
sudo yum install mysql-libs postgresql-libs expat unixODBC
在 CentOS Stream 8 上,如果出现错误 sql_connect: MySQL source wasn't initialized. Wrong name in dlopen? trying to build a plain table from MySQL
,可能需要运行:
dnf install mariadb-connector-c
乌克兰词形还原器
词形还原器需要Python 3.9+。确保已安装它,并使用 --enable-shared
进行配置。
以下是在CentOS 7/8中安装Python 3.9和乌克兰词形还原器的方法:
# 从YUM仓库安装Manticore Search和UK词形还原器
yum -y install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
yum -y install manticore manticore-lemmatizer-uk
# 安装构建Python所需的软件包
yum groupinstall "Development Tools" -y
yum install openssl-devel libffi-devel bzip2-devel wget -y
# 下载、构建和安装Python 3.9
cd ~
wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
tar xvf Python-3.9.2.tgz
cd Python-3.9*/
./configure --enable-optimizations --enable-shared
make -j8 altinstall
# 更新链接器缓存
ldconfig
# 安装pymorphy2和UK字典
pip3.9 install pymorphy2[fast]
pip3.9 install pymorphy2-dicts-uk
在 Debian 或 Ubuntu 上安装 Manticore
支持的发行版本:
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仓库
在Ubuntu/Debian/Mint中安装Manticore的最简单方法是使用我们的APT仓库。
安装仓库:
wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
sudo dpkg -i manticore-repo.noarch.deb
sudo apt update
(如果没有安装wget,请安装它;如果apt-key失败,请安装gnupg2)。
然后安装Manticore Search:
sudo apt install manticore manticore-extra
如果你从旧版本升级到Manticore 6,建议首先删除旧的软件包,以避免由于更新后的包结构引起的冲突:
sudo apt remove manticore*
这不会删除你的数据和配置文件。
开发包
如果你更喜欢使用“Nightly”(开发)版本,执行以下命令:
wget https://repo.manticoresearch.com/manticore-dev-repo.noarch.deb && \
sudo dpkg -i manticore-dev-repo.noarch.deb && \
sudo apt -y update && \
sudo apt -y install manticore manticore-extra manticore-common manticore-server manticore-server-core manticore-tools manticore-executor manticore-buddy manticore-backup manticore-columnar-lib manticore-server-core-dbgsym manticore-tools-dbgsym manticore-columnar-lib-dbgsym manticore-icudata-65l
独立的DEB软件包
要从Manticore存储库下载独立的DEB文件,请按照 https://manticoresearch.com/install/ 上的说明进行操作。
可能需要的其他软件包
对于索引器
Manticore软件包依赖于zlib和ssl库,除此之外没有其他强制要求。然而,如果计划使用索引器从外部存储创建表,你需要安装适当的客户端库。要了解索引器需要哪些具体的库,运行索引器并查看其输出的顶部:
$ sudo -u manticore indexer
这里你可以看到libodbc.so.2、libexpat.so.1、libmysqlclient.so.20和libpq.so.5的提及。
下面是一个参考表,列出了不同Debian/Ubuntu版本的所有客户端库:
发行版 | MySQL | PostgreSQL | XMLpipe | UnixODBC |
---|---|---|---|---|
Ubuntu Trusty | libmysqlclient.so.18 | libpq.so.5 | libexpat.so.1 | libodbc.so.1 |
Ubuntu Bionic | libmysqlclient.so.20 | libpq.so.5 | libexpat.so.1 | libodbc.so.2 |
Ubuntu Focal | libmysqlclient.so.21 | libpq.so.5 | libexpat.so.1 | libodbc.so.2 |
Ubuntu Hirsute | libmysqlclient.so.21 | libpq.so.5 | libexpat.so.1 | libodbc.so.2 |
Ubuntu Jammy | libmysqlclient.so.21 | libpq.so.5 | libexpat.so.1 | libodbc.so.2 |
Debian Jessie | libmysqlclient.so.18 | libpq.so.5 | libexpat.so.1 | libodbc.so.2 |
Debian Buster | libmariadb.so.3 | libpq.so.5 | libexpat.so.1 | libodbc.so.2 |
Debian Bullseye | libmariadb.so.3 | libpq.so.5 | libexpat.so.1 | libodbc.so.2 |
Debian Bookworm | libmariadb.so.3 | libpq.so.5 | libexpat.so.1 | libodbc.so.2 |
要查找提供这些库的软件包,你可以使用例如apt-file:
apt-file find libmysqlclient.so.20
libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.2.0 libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.3.6
请注意,你只需要为你打算使用的存储类型安装库。因此,如果你计划仅从MySQL构建表,那么可能只需要安装MySQL库(在上述情况下是libmysqlclient20)。
最后,安装所需的软件包:
sudo apt-get install libmysqlclient20 libodbc1 libpq5 libexpat1
如果你根本不打算使用索引器工具,就不需要查找和安装任何库。
要启用CJK分词支持,官方软件包包含带有嵌入ICU库和包含ICU数据文件的二进制文件。它们独立于系统上可能存在的任何ICU运行时库,无法升级。
乌克兰词形还原器
词形还原器需要Python 3.9+。确保已安装它,并使用 --enable-shared
进行配置。
以下是在Debian和Ubuntu上安装Python 3.9和乌克兰词形还原器的方法:
# install Manticore Search and UK lemmatizer from APT repository
cd ~
wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
sudo dpkg -i manticore-repo.noarch.deb
sudo apt -y update
sudo apt -y install manticore manticore-lemmatizer-uk
# install packages needed for building Python
sudo apt -y update
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
# download, build and install Python 3.9
cd ~
wget https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz
tar xzf Python-3.9.4.tgz
cd Python-3.9.4
./configure --enable-optimizations --enable-shared
sudo make -j8 altinstall
# update linker cache
sudo ldconfig
# install pymorphy2 and UK dictionary
sudo pip3.9 install pymorphy2[fast]
sudo pip3.9 install pymorphy2-dicts-uk
在 MacOS 上安装 Manticore
通过 Homebrew 软件包管理器:
brew install manticoresoftware/tap/manticoresearch manticoresoftware/tap/manticore-extra
启动Manticore作为brew服务:
brew services start manticoresearch
Manticore的默认配置文件位于 /usr/local/etc/manticoresearch/manticore.conf
或 /opt/homebrew/etc/manticoresearch/manticore.conf
。
如果计划使用索引器从MySQL、PostgreSQL或其他使用ODBC的数据库等源中获取数据,可能需要额外的库,如mysql@5.7、libpq和unixodbc。
开发包
如果更喜欢使用“Nightly”(开发)版本,执行以下命令:
brew tap manticoresoftware/tap-dev
brew install manticoresoftware/tap-dev/manticoresearch-dev manticoresoftware/tap-dev/manticore-extra-dev
brew services start manticoresearch-dev
在 Windows 上安装 Manticore
- 下载Manticore Search安装程序并运行它。按照安装说明进行操作。
- 选择要安装到的目录。
- 选择要安装的组件。我们建议安装所有组件。
- Manticore带有一个在RT模式下预配置的manticore.conf文件。不需要额外的配置。
安装为 Windows 服务
要将searchd(Manticore Search服务器)安装为Windows服务,请运行以下命令:
\path\to\searchd.exe --install --config \path\to\config --servicename Manticore
确保使用完整路径指定配置文件,否则当作为服务启动时,searchd.exe将无法找到它。
安装完成后,可以从Microsoft Management Console的Services管理器中启动该服务。
一旦启动,你可以使用MySQL命令行界面访问Manticore:
mysql -P9306 -h127.0.0.1
请注意,在本手册的大多数示例中,我们使用 -h0
来连接到本地主机,但在Windows中,你必须明确使用 localhost 或 127.0.0.1。
从源码编译 Manticore
编译 Manticore 源代码允许自定义构建配置,比如禁用某些功能或添加新的补丁进行测试。例如,你可能想要从源代码编译并禁用嵌入式 ICU,以便使用安装在你系统上的可以独立升级的不同版本。如果你有兴趣为 Manticore Search 项目做贡献,这也是有用的。
以下是从源代码编译Manticore的基本步骤:
获取源代码:
git clone https://github.com/manticoresoftware/manticoresearch.git
进入源代码目录:
cd manticoresearch
安装构建所需的依赖: 具体依赖可能因系统而异,但通常会涉及到构建工具和库。例如,在Debian/Ubuntu上,你可能需要执行:
sudo apt-get install build-essential
配置构建:
cmake .
这将使用默认配置。如果你有特殊的构建需求,可以使用
cmake
的各种选项进行配置。进行构建:
make
这将编译Manticore。如果你有多个核心可以并行编译,可以使用
make -jN
,其中N是核心数量。安装:
sudo make install
这将安装Manticore到系统中。
运行Manticore: 现在,你可以使用
searchd
运行Manticore。例如:searchd
请注意,这只是一个基本的示例。具体的步骤可能因你的操作系统和系统配置而异。确保查阅Manticore的文档以获取详细的指导。
使用CI Docker构建
为了准备官方的发布和开发包,我们使用Docker和一个特殊的构建镜像。该镜像包含必要的工具,并设计用于与外部sysroots一起使用,因此一个容器可以为所有操作系统构建软件包。你可以使用Dockerfile和README构建镜像,或者使用Docker Hub上的镜像。这是创建任何支持的操作系统和架构的二进制文件的最简单方法。在运行容器时,你还需要指定以下环境变量:
DISTR
:目标平台arch
:架构SYSROOT_URL
:系统根目录归档的URL。你可以使用 https://repo.manticoresearch.com/repository/sysroots,除非你正在构建sysroots自己(说明可以在此找到)。
使用CI yaml文件作为参考,查找可能需要使用的其他环境变量 - https://github.com/manticoresoftware/manticoresearch/blob/master/dist/gitlab-release.yml
要找到DISTR
和arch
的可能值,你可以使用 https://repo.manticoresearch.com/repository/sysroots/roots_with_zstd/ 目录作为参考,因为它包含了所有支持的组合的sysroots。
然后,在Docker容器中构建软件包就像调用以下命令一样简单:
cmake -DPACK=1 /path/to/sources
cmake --build .
例如,要创建与官方RedHat 7软件包相同的软件包,但没有嵌入的ICU和其大型数据文件,你可以执行以下操作(假设源代码放在主机上的 /manticore/sources/ 中):
docker run -it --rm -e SYSROOT_URL=https://repo.manticoresearch.com/repository/sysroots \
-e arch=x86_64 \
-e DISTR=rhel7 \
-e boost=boost_rhel_feb17 \
-e sysroot=roots_nov22 \
-v /manticore/sources:/manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
manticoresearch/external_toolchain:clang15_cmake3263 bash
接下来需要在Docker shell中运行以下命令:
cd /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/
RELEASE_TAG="noicu"
mkdir build && cd build
cmake -DPACK=1 -DBUILD_TAG=$RELEASE_TAG -DWITH_ICU_FORCE_STATIC=0 ..
cmake --build . --target package
长路径是必需的,否则可能构建源代码失败。
相同的过程可以用于构建二进制文件/软件包,不仅适用于流行的Linux发行版,还适用于FreeBSD、Windows和macOS。