欢迎光临
我们一直在努力

DeepSeek Harness 纯离线/物理隔离部署指南:打包 pnpm store 依赖 + 完美修复 ECONNREFUSED 报错

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

【纯离线硬核部署】DeepSeek Harness 物理隔离一站式部署:免去全局配置,指定本地 pnpm-store + 完美修复 ECONNREFUSED 报错

前言

DeepSeek Harness(简称 dsh)作为 DeepSeek 官方开源的 Agent 运行时框架,功能非常强大。但在政府、金融、内网机房等纯离线(物理断网)环境下通过源码部署时,我们往往会面临两大难题:

  • 离线状态下,如何让项目精准读取我们准备好的本地依赖池,而不用去动系统的全局路径?
  • 即使配置了本地依赖,pnpm 10+ 依然会疯狂刷出 [WARN] GET http://localhost:4873/… error (ECONNREFUSED) 的发布时间校验报错,导致安装直接挂起。
  • 本文将分享一种更优雅、不污染全局环境的离线部署方案:通过 –store-dir 显式指定相对路径的本地 Store,并结合修改 pnpm-workspace.yaml 解决安全策略报错,实现 100% 纯本地离线一站式构建与运行!


    一、 部署核心思路

    我们采用 “外网机打包 Store -> 保持相对路径拷贝 -> 内网机显式命令恢复 -> 本地策略修复” 的全套方案。 项目最终在内网机上的目录结构如下,无需修改任何全局系统变量,做到了纯粹的“绿色版解压即用”:

    D:\\my-project\\ (举例目录)
    ├── pnpm-store/ <– 存放从外网打包带进来的所有依赖包缓存
    └── deepseek-harness/ <– DeepSeek Harness 源码根目录


    二、 完整离线部署步骤

    第一步:【外网联网机】准备源码与本地 Store 依赖

    我们在能联网的机器上,提前把项目源码和它所依赖的全部依赖池准备好。

  • 克隆官方源码:git clone
    cd deepseek-harness
  • 下载依赖并生成本地 Store: 为了不污染全局,我们直接在外网机执行安装,并通过 –store-dir 将依赖池指定下载到项目同级的本地目录中:pnpm install –store-dir=../pnpm-store
    安装完成后,你会发现 deepseek-harness 的同级目录下多出了一个 pnpm-store 文件夹。
  • 打包带走:将整个父文件夹(包含 deepseek-harness 和 pnpm-store)一起压缩,拷贝到 U 盘,准备带入内网。

  • 第二步:【内网离线机】核心踩坑与配置文件修复

    来到完全断网的内网机,我们把压缩包解压(假设解压到了内网机的某个工作目录下)。

  • 打开终端,进入 deepseek-harness 源码根目录。
  • 按照标准的离线严格安装逻辑,我们尝试执行以下命令:pnpm install –offline –frozen-lockfile –store-dir=../pnpm-store
  • 开始爆红/卡死报错:此时,由于没有外网,控制台开始疯狂刷出如下错误:[WARN] GET http://localhost:4873/@agentclientprotocol/sdk/-/sdk-0.25.1.tgz error (ECONNREFUSED). Will retry in 10 seconds. 2 retries left.
    [WARN] GET http://localhost:4873/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz error (ECONNREFUSED). Will retry in 10 seconds. 2 retries left.
    [WARN] GET http://localhost:4873/@types/json-schema/-/json-schema-7.0.15.tgz error (ECONNREFUSED). Will retry in 10 seconds. 2 retries left.
    ...
  • 🛠️ 报错深度原因剖析:

    这是因为 pnpm 10及以上版本 默认开启了一项叫 minimum-release-age(最低发布年龄限制)的安全策略。pnpm 为了防止用户误装网上刚发布、可能带毒的新包,每次安装即使指定了 –offline,也会尝试联网校验包的发布时间元数据。 但在纯离线/物理隔离环境下,这种校验请求必定会超时并报出 ECONNREFUSED(拒绝连接)并无限重试。

    🛠️ 完美解决办法:

    我们需要明确告诉 pnpm 离线安装时关闭该时间校验限制。

  • 打开项目根目录下的 pnpm-workspace.yaml 文件。
  • 在文件末尾添加一行关键配置:minimumReleaseAge: 0 即可:
  • # pnpm-workspace.yaml
    packages:
    – 'packages/*'
    – 'apps/*'

    # 💡 关键修复配置:关闭包的发布时间安全校验,防止物理离线时网络请求被拒
    minimumReleaseAge: 0

    保存文件。


    第三步:【内网离线机】重新执行离线安装

    再次在 deepseek-harness 目录下执行你指定本地 Store 路径的硬核命令:

    pnpm install –offline –frozen-lockfile –store-dir=../pnpm-store

    此时你会发现之前的 [WARN] 报错瞬间消失!pnpm 顺着你指定的相对路径,极其顺畅地从 ../pnpm-store 里秒级提取依赖并成功完成安装。


    第四步:本地项目编译构建

    由于 DeepSeek Harness 采用多模块工作区架构,依赖装好后必须进行本地编译,否则前端系统无法加载。 在根目录下执行:

    pnpm run build

    等待进度条走完,看到所有子模块(Packages)打包构建成功的提示。

    第五步:离线启动 Web 界面

    最后,输入 Harness 专属的 Web 服务启动命令:

    pnpm dsh web

    当终端输出 dsh web: http://127.0.0.1:3080 时,说明你的 DeepSeek 本地 Agent 运行时平台已经在纯离线状态下完美启动!


    三、 首次运行的注意事项

  • 工作区隔离:首次访问浏览器界面时,左上角的【选择工作区】务必指定一个全新的空文件夹。因为本地 Agent 拥有操作系统 Shell 的高权限,选择空文件夹能绝对保障你的机房系统安全。
  • 大模型接入:在 Settings -> Models 中,如果你处于纯内网,可直接填入内网本地搭建好的 Ollama(兼容 OpenAI 格式)的本地 IP 服务地址和模型 ID。

  • 四、 结语

    采用 –store-dir=../pnpm-store 配合 –offline –frozen-lockfile,可以实现非常优雅的项目级依赖打包,不需要动内网机全局的 pnpm 配置。再通过 minimumReleaseAge: 0 修复软件安全策略引发的请求拒绝,我们便能完美驾驭 DeepSeek Harness 的源码离线部署。

    希望本篇闭环教程能帮到正在进行大模型私有化落地的你! 欢迎在评论区交流讨论你在部署中遇到的其他怪异报错,觉得有用的话,别忘了点赞、收藏加关注!


    参考资料与前置致敬:

    • CSDN 博客:lrlmarry 的 DeepSeek Harness 部署参考
    赞(0)
    未经允许不得转载:171主机测评 » DeepSeek Harness 纯离线/物理隔离部署指南:打包 pnpm store 依赖 + 完美修复 ECONNREFUSED 报错
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址