MacOS 环境下运行 EasySearch 报错无法信任 Java 包的解决方案
发表于|更新于|极限科技Easysearch
|总字数:355|阅读时长:1分钟|浏览量:
问题背景
近期因 MacBook 系统降级重装,需重新部署 EasySearch 环境。由于系统未预装 Java,选择下载捆绑 JDK 的 EasySearch 版本,但在安装过程中遇到以下问题:
- 系统安全机制拦截 Java 运行
- 密码认证异常(持续返回 401 错误)
问题现象
安全拦截
MacOS Gatekeeper 阻止运行捆绑的 JDK,即使在「系统偏好设置-安全性与隐私」中手动放行后,仍出现权限不足提示(见图 1)。
认证失效
配置文件中的密码校验异常,任何登录尝试均返回 401 状态码。
解决步骤
全局权限设置
首先通过终端命令关闭系统安全限制:1
sudo spctl --master-disable
但发现此操作仍无法解决 JDK 运行问题。

最终解决方案
采用处理「App 损坏」报错的方法:重新解压安装包
执行扩展属性清除命令:
1
xattr -cr jdk/bin/java
重新初始化 EasySearch
验证结果
成功运行 EasySearch 并完成系统初始化(见图 3)。

经验总结
MacOS 对未公证应用的限制日趋严格,建议:
- 优先使用公证版本软件
- 遇到权限问题时,
xattr -cr命令可有效清除可能导致拦截的扩展属性 - 401 错误可能与系统权限深度关联,需综合处理运行环境和配置文件
文章作者: 忘机山人
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 镜湖!
相关推荐
2024-07-03
Easysearch 数据可视化和管理平台:INFINI Console 使用介绍
上次在《INFINI Easysearch 尝鲜 Hands on》中,我们部署了两个节点的 Easysearch,并设置了 Console 进行集群监控。今天,我们将介绍 INFINI Console 的使用。 DashboardINFINI Console 是一个功能强大的数据管理和分析平台,其仪表盘页面提供了直观简洁的界面,使用户能够快速了解系统状态并进行管理操作。本文将详细介绍仪表盘页面的各项功能。 仪表盘顶部显示系统的实时告警、通知和待办事项的数量,当前数据显示: 告警:0 条 通知:0 条 待办:0 条 在仪表盘的中心区域,用户可以看到几项关键的系统概览信息: 集群数量:当前有 3 个集群正在运行。 节点数量:系统中有 16 个节点。 主机数量:共有 3 台主机。 已用存储:系统已使用存储空间为 2.0GB。 仪表盘页面还提供了几个常用操作的快速入口,方便用户迅速访问常用功能: 集群注册:用户可以通过此入口快速注册新的集群。 数据探索:用户可以访问数据探索工具,对系统中的数据进行分析和查询。 告警管理:提供对告警信息的管理功能,用户可以查看和处理告警。...
2025-10-05
不用每次都改 `easysearch.yml` 也能改启动参数 —— 用 Docker 环境变量搞定一切
在用 Docker 部署 Easysearch 的时候,很多人习惯性地去改容器里的 easysearch.yml。但每改一次,就得重建镜像或重新挂载配置,既不方便,也不利于自动化。 其实,Docker 天生就支持通过环境变量来传递参数。只要我们把要改的配置写进 .env 文件,再用 --env-file 加载,就能在启动时覆盖 easysearch.yml 的对应设置。这样,既不用改镜像,也不用动配置文件,还能方便地调试、切换和管理。 下面就来详细讲讲这套思路的原理、写法与实践。 Docker 环境变量机制简介Docker 启动容器时,会把宿主机上的环境变量传递进容器内部。容器里的程序(例如 Easysearch)在启动时,会读取这些变量并用来覆盖或替代默认配置。 简单来说: 1环境变量 > easysearch.yml > 默认值 也就是说,只要我们在启动容器时提供了对应的环境变量,就能覆盖掉配置文件里的同名参数。这就是“用 Docker 环境变量替代修改配置文件”的原理。 .env 文件写法先准备一个 .env 文件(放在和 Docker 命令同级的目录...
2025-02-11
Macbook Pro快速搭建Easysearch学习环境
在学习过程中,我们有时身边没有可用的服务器,这时就需要借助自己的 Mac 来安装和学习 Easysearch。然而,Easysearch 官网并未提供 Mac 版本的安装教程,下面我将详细整理我在 Mac 上安装和使用 Easysearch 的折腾经历。 EasysearchEasysearch 的运行依赖于 Java,程序启动时会自动从当前目录的 JDK 中查找 Java 环境。因此,即便环境变量中已经配置了 Java,程序也可能无法找到。针对这个问题,有两种解决办法:下载 JDK 的二进制文件,将其重命名为 “jdk”,并放置在 Easysearch 的根目录下。下载 Easysearch 的 bundle 包,该包会自带一个 JDK。下载链接为:https://release.infinilabs.com/Easysearch/stable/bundle/安装步骤如下:首先执行初始化脚本,此脚本会设置 TLS 证书和集群密码。在执行脚本之前,log 目录为空。 1234567891011121314151617181920212223242526272829303132...
2024-06-30
INFINI Easysearch尝鲜Hands on
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个自主可控的轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。 Easysearch 支持原生 Elasticsearch 的 DSL 查询语法,确保原业务代码无需调整即可无缝迁移。同时,极限科技还支持 SQL 查询,为熟悉 SQL 的开发人员提供更加便捷的数据分析方式。此外,Easysearch 兼容 Elasticsearch 的 SDK 和现有索引存储格式,支持冷热架构和索引生命周期管理,确保用户能够轻松实现数据的无缝衔接。 安装安装脚本无论是 Linux 还是 mac 都是这个一键脚本 1curl -sSL http://get.infini.cloud | bash -s -- -p easysearch 同时也提供了二进制的安装包: 如果不想整理 JAVA ...
2025-08-28
不建 Hugo、不用 Hexo,纯 Markdown 文件也能接入 Coco-AI!
容器运行 Coco AI,如何访问宿主机的 localhost?使用容器确实方便了很多事情,但在网络访问上可能会引出一些麻烦。如果你的调试服务只监听在宿主机的 localhost,那么在容器里访问时,会找的是容器自己的 localhost,所以无法连通。 因为无论是 Coco server 还是 Console 都是服务端发送请求,所以我统一记录下来。 下面介绍几种在不同环境下的解决方案。 1. Mac 的 Orbstack在 Orbstack 环境中,可以使用 host.docker.internal 代替宿主机的 localhost。例如访问宿主机的 Hexo 服务(http://localhost:4000/atom.xml)时,直接这样写: 1http://host.docker.internal:4000/atom.xml host.docker.internal 会被解析到宿主机 IP,相当于容器内部的 “localhost”。 2. Linux 下单容器运行在 Linux 环境中,host.docker.internal 默认可能不可用,可以用以下方法: 方...
2025-12-31
告别 DSL!我用 MCP 让 AI 帮我操作 Easysearch
还在为记不住 Elasticsearch DSL 语法发愁?match 和 term 傻傻分不清?聚合查询写半天还报错? 今天教你用 MCP(Model Context Protocol)封装 Easysearch,让 AI 帮你操作集群。从此告别 DSL,用自然语言就能完成搜索、写入、聚合统计! 效果演示先看看最终效果。以下是我和 Kiro 的真实对话记录: 我:集群健康吗? Kiro: 1234567{ "cluster_name": "infinilabs", "status": "green", "number_of_nodes": 1, "active_shards": 2, "active_shards_percent_as_number": 100.0} 🟢 集群很健康!状态 green,1 个节点,2 个活跃分片,100% 健康。 我:创建一个产品索引,有名称、价格、分类、描述字段 Kiro:...
评论
公告
欢迎来到我的小站,这里是我的第二大脑和生活日常。
Easysearch


