dsh-ohos-shell:补齐 HarmonyOS/OpenHarmony 子进程运行环境

在 HarmonyOS 或 OpenHarmony 设备上使用 DeepSeek Harness 时,子进程的运行环境往往存在兼容性问题。默认 shell 为 mksh(不支持标准配置文件),系统缺少 /etc/shells 注册表,且 /tmp 目录可能只读。这些问题会导致工具调用失败或配置丢失。dsh-ohos-shell 旨在解决这些问题,为子进程提供完整的 harmonybrew 环境和 zsh 支持。

dsh-ohos-shell 是 DeepSeek Harness 的一个插件(bundle),由 CyberQin 维护。它专门针对 HarmonyOS 和 OpenHarmony 平台设计,主要功能是补齐子进程的运行环境,包括提供 zsh 函数库、设置默认 shell 为 zsh 或 bash,以及处理 OpenHarmony 特有的 shell 差异(如 /etc/shells 不存在、/tmp 只读、沙箱 uid 问题)。

核心功能

  • 插入 ohos-shell-env 和 ohos-shell-facts 到 profile。
  • 为子进程提供 HarmonyOS 环境变量(PATH, SHELL, TMPDIR, HOMEBREW_* 等)。
  • 提供 zsh 函数库。
  • 将侧栏默认 shell 更改为 zsh 或 bash。
  • 处理 HarmonyOS/OpenHarmony 特有的 shell 差异(如 /etc/shells 不存在、/tmp 只读、沙箱 uid 问题)。

环境要求

  • 设备运行 HarmonyOS 或 OpenHarmony。
  • 已安装 harmonybrew(默认前缀为 ~/.harmonybrew)。
  • 已通过 harmonybrew 安装 deepseek-harness。
  • 系统提供 /usr/bin/zsh。

安装与启用

通过 Harness 的插件管理器安装:

dsh plugin --profile web add dsh-ohos-shell

插件管理器会将包写入 dsh.profile.bundles。安装后,profile 的 package.json 应包含 "dsh-ohos-shell" 依赖。

功能细节

安装后,插件会向 profile 插入两行 Host 插件:

  • ohos-shell-env:将环境变量写入主进程的 process.env,卸载时还原。
  • ohos-shell-facts:通过 ctx.shellEnv 发布 DSH_OHOS* 信息,供模型 shell 读取。

它会设置以下环境变量:

  • PATH:去重并按 ~/.zshrc 顺序将 harmonybrew 放在最前。
  • SHELL:设置为第一个可用的 zsh 或 bash。
  • TMPDIR:优先使用可写的目录(如 $HOME/.tmp),解决 /tmp 只读问题。
  • FPATH:指向本包的 zsh-functions 目录,补齐函数库。
  • HOMEBREW_*:设置 Homebrew 相关路径。
  • NODE_OPTIONS:当存在 userinfo-shim.cjs 时,前置 --require。

注意事项

  • 仅在 HarmonyOS 和 OpenHarmony 上生效。
  • Node 的 os.userInfo() 在应用沙箱 uid 下会抛出错误。
  • /tmp 目录可能只读,需要设置可写的 TMPDIR。
  • 模型 shell 的 bash 工具不受影响(它固定执行 bash -c)。
  • 安装前请检查源码与许可证。

该插件通过修复环境变量和 shell 配置,解决了在鸿蒙系统上运行 DeepSeek Harness 子进程的兼容性问题。若需查看源码或提交反馈,可访问其 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜