更新
按安装方式区分的自动更新与手动升级、补丁版静默安装、qialike-update.auto 设置,以及 qialike upgrade 家族。
能自动更新的安装会自动更新:启动约 1 秒后,后台以子进程检查一次新版本(不阻塞界面,失败静默)。只有补丁版(patch)会静默安装;小版本(minor)与大版本(major)只在状态栏提示。
哪些安装能自动更新见下表——简单说:npm 装的可以(含 Windows),curl 安装器装的可以(仅 Linux / macOS),手动解压的 zip 与源码构建不可以。
按安装方式更新
| 你是怎么装的 | 自动更新 | 手动更新 |
|---|---|---|
| Linux / macOS(shell 安装器) | ✅ 补丁版静默装;小/大版本只提示 | qialike upgrade |
| Windows · npm | ✅ 补丁版静默装(与 Linux / macOS 同规则) | qialike upgrade,或自己跑 npm i -g @qialike/cli@latest(先退出 qialike) |
| Windows · 手动解压 zip | ❌ 不自动 | qialike upgrade --check 查版本 → 下载新 .zip → 退出 qialike → 替换 qialike.exe |
| 从源码构建 | ❌ 从不被触碰 | git pull 后重新构建 |
Windows 上为什么大多没有自动更新:shell 安装器在 Windows 上没法用(它是 bash),运行中的 .exe 也无法被替换(POSIX 靠 mv 换掉正在运行的 ELF,Windows 没有等价物)⇒ 安装器装的、以及手动解压的副本都只能提示。npm 装的副本是唯一的例外:npm 自己就是它的更新器、不需要 bash,所以那条渠道在 Windows 上也按同一规则自动更新——启动后台检查发现补丁版时,它直接跑 npm install -g @qialike/cli@<版本>(精确版本,不是 @latest,避免 npm 二次解析到比你被告知的更新的版本);当前会话仍跑着旧版本,下次启动生效。小版本 / 大版本仍只提示,把 qialike-update.auto 设成 "notify" 后连补丁版也只提示。
所以 qialike upgrade 在 Windows 上有两种行为:npm 装的会真的装(交给 npm),手动解压的只报版本并打印两个下载链接(GitCode 主源 + gitcode 镜像)——后者的布局里没有可原地替换的文件,下载新 .zip、退出 qialike、替换 qialike.exe 才是它的更新方式。
自动更新的前提
二进制有人管:curl 安装器的 ~/.dsh/bin(Linux / macOS),或 npm 全局前缀下的副本(含 Windows)。没有人管的两种永远不会被替换:自行编译的检出构建,以及从 zip 手动解压出来的二进制——它们只会收到通知(版本 + 下载链接),--check 也只报告。
关闭或改为只提示
设置项 qialike-update.auto 是 ~/.dsh/settings.yaml 里的一个设置节(由更新器注册),取值:
| 取值 | 含义 |
|---|---|
true(默认) | 补丁版静默安装;小版本 / 大版本只提示。 |
false | 完全不检查。 |
"notify" | 只提示、从不自动安装。 |
两个环境变量可覆盖它:QIALIKE_DISABLE_AUTOUPDATE=1 全局关闭自动更新,QIALIKE_ALWAYS_NOTIFY_UPDATE=1 强制只提示。确切的 YAML 写法与其余环境变量见 配置。
手动更新
qialike upgrade # 升级到最新版qialike upgrade <版本> # 装指定版本(接受 v 前缀)qialike upgrade --check # 只报告,不安装TUI 内也可用 /upgrade。能不能真的安装,取决于二进制由谁管,而不是取决于平台:
- npm 副本由 npm 替换(Windows 上也能);
qialike upgrade --check会额外把npm i -g @qialike/cli@latest打印出来。 ~/.dsh/bin的副本由安装器替换(仅 POSIX——Windows 上安装器是 bash,且运行中的.exe换不掉)。- 没人管的副本(检出构建、手动解压的二进制)会被拒绝并建议改用安装器重装;唯一的例外是 Windows 上手动解压的那份——平台闸在它之前,直接给出下载链接。
更新请求发往哪里
版本检查与下载发往 GitCode(canonical)、gitcode(镜像)与 qialike.cn——与安装器相同的主机,见 安装 → 下载源与回退。