内网离线怎么挑插件?先用 DSH Plugin market 选型、导出清单,再走插件市场离线安装
一个团队要把 DSH 插件搬进没有外网的环境,真正麻烦的不是安装命令,而是“带什么进去”。 DSH Plugin market 只能在联网侧打开,所以选型、版本确认和依赖收集都必须在这边做完,再一次性把介质送进去。
DSH Plugin market 联网侧的选型清单
内网清单不是下载列表,而是一份能独立复算的安装依据。
联网机器上的第一步不是下载,而是把候选定下来:包名、确切版本、支持的 Harness 范围,以及目标机器的系统与架构。任何一项留到内网再确认,都会变成一次往返。 显示名可以改,包名才是稳定身份;版本号必须写死,“最新版”在离线环境里没有意义。
| 项目 | 记录内容 | 用途 |
|---|---|---|
| 包名与版本 | 完整包名、确切版本 | 内网安装依据 |
| 依赖树 | 直接与间接依赖及版本 | 避免缺包 |
| 平台要求 | 操作系统、架构、Node 版本 | 避免装完跑不了 |
| 校验值 | 每个 tarball 的 SHA-256 | 传输完整性 |
清单还要写清插件与 Harness 的兼容范围。内网机器的 Harness 版本往往比联网侧旧,如果插件要求更高的主版本,装上了也加载不了。 这一项不写,后面所有安装步骤都可能是白做。
清单的读者不是写它的人,而是下一个执行安装的同事。对方只拿这份清单,应该能判断要装什么、按什么顺序装、装完怎么确认。 做不到这一点,说明清单还缺信息。
把 DSH插件 的依赖树一起带走
依赖树要按“内网无法临时补包”的前提记录。
只记录插件本体,是离线安装最常见的失误。插件依赖的共享库、解析器、原生模块,在内网都没有办法临时下载。 联网侧解析一次完整依赖树,把直接与间接依赖都列出来,才算把安装条件凑齐。
npm view @acme/doc-index@1.4.2 dependencies
npm pack @acme/doc-index@1.4.2
第一条命令看插件声明了什么,第二条把插件本体打成 tarball。依赖包需要按解析结果逐个打包,或者用离线镜像工具一次性拉齐。 终端里的输出不要只看一眼,保存成文件再带走,否则内网侧无法复核。
可选依赖与 peer 依赖要特别标注。它们在联网环境里可能自动补齐,在离线环境里却会变成“装得上但功能缺失”。 原生模块还要确认目标架构有对应产物,ARM 与 x64 不能混用。
DeepSeek插件 离线介质的准备
介质准备的目标,是让内网只做校验和安装,不做判断。
把插件本体、依赖包和校验文件分目录存放,目录名带上包名与版本,内网侧就不需要猜哪个文件对应哪个包。 传输前计算一次哈希,到达内网后再计算一次,两次一致才进入安装。目录结构一旦固定,后续增量更新也不容易放错位置。
shasum -a 256 *.tgz > SHA256SUMS
校验文件本身也要一起带进去,否则内网侧只有哈希值却没有对照表。 如果组织有受控介质或内网文件服务,优先走那条链路,不要用个人网盘中转。介质交接时留一份签收记录,出了问题能追溯到具体批次。
介质里可以放一份简短的安装说明,写清目录结构与执行顺序。说明不必长,但要能让没有参与选型的人独立完成安装。 离线环境里,口头交接的丢失率比想象中高。
DSH Plugin market 清单在内网怎么落地
内网侧按清单顺序执行,先依赖后插件。
- 对照 SHA256SUMS 逐个校验 tarball,失败的文件直接停用。
- 先安装依赖包,再安装插件本体,顺序不要反。
- 用 dsh plugin add 指向本地 tarball,避免安装过程访问远端 registry。
- 用 dsh plugin list 核对版本与清单完全一致。
- 重启并确认插件状态进入 ACTIVE,而不是 PENDING 或 FAILED。
- 跑一次真实任务,确认功能可用而不只是安装成功。
安装过程中如果报缺包,回到清单补一项,再重新制作介质。不要试图在内网临时找源,也不要把“先跳过依赖”当成解决方案。 每失败一次就补一项,清单会逐渐变成可复用的模板。
版本核对要在安装后立刻做。内网机器上可能残留旧版本,包管理器不一定按你预期覆盖。 发现版本不一致时,先卸载再按清单重装,比在旧版本上叠加更可控。
DeepSeek Harness 离线安装后的核对
离线环境里,“装上”只是核对的第一步。
先看状态,再看功能。插件列表里版本正确、状态为 ACTIVE,说明加载阶段通过;跑一个真实任务,才能确认依赖与权限没有缺项。 如果任务失败,优先查运行日志里的模块缺失与版本不匹配,而不是重新安装。
把这次安装的清单、校验文件与结果记录放在一起。下一次 Harness 升级或新增插件时,可以在这份记录上增量修改,不必从零开始。 离线环境最怕的是“上次怎么装的没人记得”,而清单正是用来对抗这件事的。
介质也要保留一份,至少保留到下一次成功升级之后。需要回退时,旧 tarball 比重新申请外网下载快得多。 版本、校验值与配置位置写在同一处,回退就不会变成考古。
离线安装的成败,很少取决于命令本身,而取决于联网侧那半天是否把清单做扎实。包名、版本、依赖、平台、校验值都落实之后,内网剩下的只是按顺序执行和核对结果。下一次需要新增插件时,照着同一份清单扩充即可。
常见问题
DSH Plugin market 只能在能联网的机器上使用,选型要前置完成:记下包名、版本、依赖与校验值,再到内网安装。
从 DSH Plugin market 选好插件后,至少带走插件包本体、依赖包与校验值。市场只给条目信息,依赖树可能比插件本身大,漏掉间接依赖会离线安装失败。
从 DSH Plugin market 带到离线的 tarball,用包管理器从本地文件安装,例如 dsh plugin add 指向 tarball 路径。离线安装的关键是依赖齐全。
核对校验值是 DSH Plugin market 之外的必需步骤:市场不提供完整性证明,包的真实性要靠 npm 的 integrity 字段或你自己计算的哈希。
DSH Plugin market 离线安装失败,最常见是依赖不全与平台不匹配:清单如果只记插件本体,离线环境无法临时补依赖,原生模块也无法现场编译。
相关术语
- DSH Plugin market(插件市场)
- DSH Plugin market 是插件市场界面,负责发现与版本确认。离线环境无法直接访问它,因此选型要前置到联网机器完成。— https://dsh-plugin.org/zh/plugins/dshplugin/dsh-plugin-hub
- offline manifest(离线清单)
- 离线清单是带进内网的安装依据,包含包名、确切版本、直接与间接依赖、平台要求与校验值。它是离线安装能否一次成功的关键。— https://deepseek-harness.github.io/deepseek-harness/guide/quickstart
- tarball(包归档)
- tarball 是 npm 包的打包文件,可由 npm pack 生成或从镜像下载。离线安装通过本地 tarball 完成,不依赖远端 registry。— https://docs.npmjs.com/cli/v10/commands/npm-pack
- checksum(校验值)
- 校验值是包内容的哈希,用于确认传输前后未被篡改。离线场景里,它是替代在线签名校验的最低成本手段。— https://docs.npmjs.com/cli/v10/commands/npm-pack
来源
- DSH Plugin Hub — 插件市场条目页· dsh-plugin.org
- DeepSeek Harness 文档 — 快速开始· deepseek-harness.github.io
- npm Docs — npm pack· npm