dsh-desktop-linux-updater
August 28, 2026 · View on GitHub
桌面端 Linux 自建版一键更新插件 —— 官方 dsh-desktop 只发布 Windows/macOS,Linux 版需要 自建(官方源码 + Linux 打包补丁,经 GitHub Actions 构建发布)。本插件让 Linux 用户 在 设置 → 桌面端更新 里一键完成:检查新版本 → 下载 deb → 替换应用目录 → 自动重启。
安装
npx -y @deepseek-ai/dsh plugin --profile web add github:lin-1259/dsh-desktop-linux-updater
然后重启 dsh-desktop,在 设置 → 桌面端更新 看到卡片即安装成功。
前提:Linux 版 dsh-desktop 已安装(deb 解包到
~/.local/share/dsh-desktop或/opt/DSH Desktop均可,插件会自动检测)。
使用
| 按钮 | 行为 |
|---|---|
| 检查更新 | 查询发布仓库的 linux-* release,对比内置 harness 版本 |
| 更新并重启 | 下载 deb(~150MB)→ 解包 → 替换应用目录 → 自动重启 |
更新源默认指向 lin-1259/dsh-desktop(Linux 自建版发布仓库)。官方若开始发布 Linux
版,在插件配置里把 owner/repo 改成官方仓库即可,无需重装。
工作原理
- 检查:
GET /repos/<owner>/<repo>/releases找最新linux-<tag>release,取其 deb; 用<upstream>@<tag>的 package.json 里@deepseek-ai/dsh版本与本地内置版本比对。 - 更新:下载 deb →
dpkg-deb -x解包 → 写一个分离执行的交换脚本(sleep 3 等旧进程 退出 →mv旧目录为备份 →cp -a新目录 →gtk-launch重启)→pkill旧进程。 - 安全:更新接口带一次性 token +
sec-fetch-site同源校验;更新源仓库可配置, 请只指向你信任的发布方。
配置项(设置 → 插件 → 插件配置)
| 字段 | 默认 | 说明 |
|---|---|---|
owner | lin-1259 | 发布 linux-* release 的仓库 owner |
repo | dsh-desktop | 发布仓库名 |
upstream | dataelement/dsh-desktop | 官方源码仓库(用于版本比对) |
appDir | 自动检测 | 应用安装目录,留空自动 |
autoRestart | true | 更新后自动重启(false = 只替换,手动重启) |
兼容性
- dsh harness 0.1.1-rc.1(v0.5.0 桌面端)实测可用;较新/较旧版本大概率可用(仅用 webServer 路由 + settings 卡片两个稳定接口)。
- 仅 Linux(更新流程依赖
dpkg-deb、pkill、setsid)。
故障排查
| 现象 | 原因 / 处理 |
|---|---|
| 「检查更新」显示已是最新,但 GitHub 上明明有新版 | 插件对比的是内置 harness 版本(@deepseek-ai/dsh),不是 release 号——外壳小版本(如 v0.6.2→v0.6.3)引擎不变时不提示,属预期 |
| 下载很慢 / 超时 | GitHub 直连受限时可给 dsh 进程配代理(HTTPS_PROXY),或换网络 |
| 「磁盘空间不足」 | 更新需要约 3 倍 deb 体积(下载 + 解包)的余量,清理分区后再试 |
| 更新失败后应用没起来 | 交换脚本会自动回滚备份目录;仍异常时手动检查 ~/.local/share/dsh-desktop 是否有 .bak 目录,删掉坏的、把备份改回来即可 |
| 想绕过「已是最新」强制换外壳版本 | 插件配置把 upstream 换成目标 tag 对应的仓库版本线,或等引擎版本变化 |
License
MIT