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 同源校验;更新源仓库可配置, 请只指向你信任的发布方。

配置项(设置 → 插件 → 插件配置)

字段默认说明
ownerlin-1259发布 linux-* release 的仓库 owner
repodsh-desktop发布仓库名
upstreamdataelement/dsh-desktop官方源码仓库(用于版本比对)
appDir自动检测应用安装目录,留空自动
autoRestarttrue更新后自动重启(false = 只替换,手动重启)

兼容性

  • dsh harness 0.1.1-rc.1(v0.5.0 桌面端)实测可用;较新/较旧版本大概率可用(仅用 webServer 路由 + settings 卡片两个稳定接口)。
  • 仅 Linux(更新流程依赖 dpkg-debpkillsetsid)。

故障排查

现象原因 / 处理
「检查更新」显示已是最新,但 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