⚠️ 此页面为自动翻译,翻译可能不完美。
blog-post

一条命令安装 Manticore Search

author image

现在有了 Manticore Search 的一行安装器:

curl https://manticoresearch.com | sh

它本质上仍然是一次标准的软件包管理器安装。脚本会检查机器使用的是 APT、YUM/DNF 还是 Homebrew,在需要时配置 Manticore 仓库,安装 manticore 包,并在你没有明确禁止时启动服务。

当你想快速拉起 Manticore Search,又不想手动走一遍软件包管理器步骤时,可以使用它。如果你希望自己控制仓库配置、软件包安装、服务启动或部署方式,手动安装页面仍然是正确的入口。

运行之后

成功运行后,Manticore 会通过系统软件包管理器完成安装。升级、服务管理、卸载和主机检查都使用常规系统工具。

默认情况下,安装器会:

  • 从稳定版 Manticore 软件包仓库安装
  • 安装 manticore
  • 启动 manticore 服务
  • 保持默认监听端口 930693089312
  • 写入安装日志,便于排查问题

检查服务

服务启动后,做一次简单的 SQL-over-HTTP 检查就足够了:

curl -sS "http://127.0.0.1:9308/sql?mode=raw" -d "SELECT VERSION()"

也可以使用 MySQL 客户端:

mysql -P9306 -h0 -e "SELECT VERSION()"

如果返回了版本号,就说明软件包已安装且服务正在响应。

为什么还要新增一种安装方式?

这些手动安装说明 不会消失。当你需要 Docker、Kubernetes、Windows、固定的包管理器流程,或者不允许远程 shell 脚本的部署策略时,它们依然更合适。

这一行安装器走的是更短的路径。它不会先让读者在 APT、YUM/DNF 和 Homebrew 之间做选择,而是直接检测软件包管理器并执行同一套标准安装流程:

  • Debian 或 Ubuntu:添加 APT 仓库,更新元数据,安装软件包,启动服务。
  • RHEL 兼容发行版:安装仓库 RPM,安装软件包,启动服务。
  • macOS:使用 Homebrew,然后通过 brew services 启动服务。
  • 其他环境:停止并指向手动安装选项。

差别不大,但当你只想快速得到一个可运行的本地或测试实例时,这很有用。

脚本做了什么

安装器是一个 shell 脚本。如果你想先阅读源码,它位于 Manticore Search GitHub 仓库中的 installer/bootstrap-standalone.sh

在它支持的系统上,它会:

  • 检测 APT、YUM/DNF 或 Homebrew
  • 检查 CPU 架构是否为 x86-64 或 ARM64
  • 在需要时安装 Manticore 仓库包
  • 安装 manticore
  • 默认启动 manticore 服务
  • ssnetstat 可用时,于启动前检查默认监听端口
  • 在可能的情况下将安装日志写入 /var/log/manticore_install.log,否则写入 /tmp/manticore_installer.log

默认监听端口是 930693089312。如果其中某个端口已经被占用、Manticore 还没有运行,并且系统中有 ssnetstat,安装器会直接失败,而不是替你修改配置。如果这两个工具都不可用,则无法进行预检查;如果某个端口已被占用,服务启动仍然可能失败。

端口变更留给你自己处理,因为修改端口会影响客户端、服务文件和监控。

适用范围

安装器当前支持:

  • 使用 APT 的 Debian、Ubuntu、Linux Mint 和 Debian 类系统
  • 使用 YUM 或 DNF 的 RHEL、CentOS、Fedora、Rocky Linux、AlmaLinux、Amazon Linux 以及 RHEL/Fedora 类系统
  • 已安装 Homebrew 的 macOS
  • x86-64 和 ARM64 CPU

上面的命令使用了 curl。你也可以用 wget 下载脚本:

wget -O- https://manticoresearch.com | sh

必须安装 Bash。下载后的脚本会先在 /bin/sh 下启动,检查 Bash 是否可用,然后再用 Bash 运行主安装载荷。你还需要具备安装软件包和启动服务的常规权限,可以是 root,也可以通过 sudo

如果操作系统、软件包管理器或 CPU 架构不受支持,安装器会停止并输出一条消息,指向手动安装指南。

默认行为

在不加额外选项的情况下,安装器会使用稳定版发布通道,安装软件包,启动服务,并保留标准监听端口:

  • 默认使用稳定版软件包,除非传入 dev
  • 默认启动服务,除非传入 no-start
  • 监听端口保持为 930693089312
  • 不会删除现有数据

其他检查只在特定情况下生效。在升级前,安装器会备份配置。只有传入 backup-data 时,它才会复制数据目录。在 uninstallpurge 过程中,它会保留数据不动。如果发现现有的 searchd 二进制文件不属于包管理安装,它会输出警告。

破坏性选项仍然是单独的:purge-all 会删除软件包、仓库状态、配置和数据。如果不是非交互模式,它会要求你输入 DELETE,然后才会删除 /etc/manticoresearch/var/lib/manticore

常用命令

大多数安装器行为都通过在 sh -s 后面传入选项来控制:

# Install the latest stable package and start the service
curl https://manticoresearch.com | sh

# Install but do not start the service
curl https://manticoresearch.com | sh -s no-start

# Upgrade an existing package-managed installation
curl https://manticoresearch.com | sh -s upgrade

# Upgrade and include the data directory in the backup
curl https://manticoresearch.com | sh -s upgrade backup-data

# Choose where upgrade backups are written
curl https://manticoresearch.com | sh -s upgrade backup-data backup-dir /path/to/backups

# List available stable versions
curl https://manticoresearch.com | sh -s list-versions

# List versions from the development repository
curl https://manticoresearch.com | sh -s dev list-versions

# Install or switch to a specific version without starting the service
curl https://manticoresearch.com | sh -s version 25.0.0 no-start

# Show installer help
curl https://manticoresearch.com | sh -s help

指定版本只适用于 Linux 的软件包管理器安装。Homebrew 的安装和升级遵循 Homebrew formula,不支持通过这个安装器使用 version

dev 选项会切换到开发仓库。默认使用发布通道。

CI 和非交互环境

用于自动化时,只有在你希望安装器无提示运行并接受脚本默认值时,才使用 silentyes

curl https://manticoresearch.com | sh -s silent no-start

silentyes 是同一种非交互模式的别名。它们并不表示“没有输出”:安装器仍会输出进度和错误,只是不会出现交互提示和彩色输出。它们本身也不会请求升级。如果现有安装需要升级,请显式传入 upgrade

curl https://manticoresearch.com | sh -s upgrade silent

在非交互模式下要小心清理命令。在当前安装程序中,silent 也会跳过 purge-all 的“DELETE”提示,因此它可以在不再次确认的情况下删除配置和数据。

清理选项

卸载分成几个级别:

# Remove packages, keep configuration, data, and repository state
curl https://manticoresearch.com | sh -s uninstall

# Remove packages and the repository bootstrap package
curl https://manticoresearch.com | sh -s purge

# Remove packages, repository state, configuration, and data
curl https://manticoresearch.com | sh -s purge-all

purge-all 是破坏性选项。不要将它与 silentyes 组合使用,除非你确实想在没有确认提示的情况下删除 /etc/manticoresearch/var/lib/manticore

curl https://manticoresearch.com | sh -s purge-all silent

移除软件和删除数据不是同一操作,因此安装器会将这两者分开处理。

如果你的策略禁止 pipe-to-shell

有些环境不允许使用 curl | sh。这没有关系。你可以使用手动的软件包管理器安装说明 ,或者先查看脚本源码,确认无误后再运行。

关于手动包管理器命令、Docker、Kubernetes、Windows 和独立软件包,请参阅 Manticore Search 安装指南

安装Manticore Search

在 Linux 或 macOS 上用一条命令安装 Manticore Search:

curl https://manticoresearch.com | sh

有关高级安装选项,请参阅完整安装指南手册

安装Manticore Search