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 倉庫。

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

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

小夜