Skip to content

fix(ci): 修复 Linux .deb 包 Package 字段非法导致无法安装#32

Open
AiW520 wants to merge 1 commit into
tuziapi:mainfrom
AiW520:fix/linux-deb-package-name
Open

fix(ci): 修复 Linux .deb 包 Package 字段非法导致无法安装#32
AiW520 wants to merge 1 commit into
tuziapi:mainfrom
AiW520:fix/linux-deb-package-name

Conversation

@AiW520

@AiW520 AiW520 commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

背景

用户反馈从 GitHub Releases 下载 tuzi-switch-linux-x86_64.deb 后,用 sudo dpkg -i 安装失败:

dpkg: 处理归档 tuzi-switch-linux-x86_64.deb (--install)时出错:
 在解析文件 '/var/lib/dpkg/tmp.ci/control' 第 1 行附近时:
 无效的软件包名存在于 'Package' 字段: 必须以字母或数字开头

根因

Tauri 打包 deb 时会把 productName 转成 kebab-case 写入 DEBIAN/controlPackage: 字段。项目 productName 是 “兔子switch”(中文开头),不符合 Debian 命名规则(Package: 必须以字母/数字开头)。

同一个 workflow 中 Windows 构建早已通过 --config '{"productName":"tuzi switch"}' 覆盖过(因为 MSI/NSIS 也有类似限制),但 Linux 构建段落遗漏了这一步,直接使用了默认的中文 productName,产出了非法的 deb 控制文件。

修复

.github/workflows/build.ymlbuild-linux 作业里,把两处 pnpm tauri build 都加上 --config '{"productName":"tuzi switch"}'

  • 未配置 signing key:--config '{"productName":"tuzi switch","bundle":{"createUpdaterArtifacts":false}}'
  • 已配置 signing key:--config '{"productName":"tuzi switch"}'

修复后 deb 控制文件里应为 Package: tuzi-switch(合法:字母开头、仅含小写字母数字与连字符)。macOS / AppImage 无此限制,无需改动。

影响面

  • 仅影响 Linux .deb(以及类似规则的 .rpm)构建产物
  • macOS .dmg、Windows .msi/.exe、Linux .AppImage 均不受影响
  • 应用内展示名称保持不变(tauri.conf.json 中的 productName 未改动,只在 Linux 构建阶段临时覆盖)

验证步骤

新版本发布后:

  1. 从 Releases 下载 tuzi-switch-linux-x86_64.deb
  2. dpkg-deb -f tuzi-switch-linux-x86_64.deb Package 应输出 tuzi-switch
  3. sudo dpkg -i tuzi-switch-linux-x86_64.deb 能正常完成安装
  4. 启动应用,功能与其它平台版本一致

变更文件

  • .github/workflows/build.yml:Linux 构建段落 pnpm tauri build 加 productName 覆盖
  • docs/bugfix-linux-deb-package-name.md:新增修复文档,记录现象、根因、方案、验证方式与用户临时规避方案

用户临时规避方案(在下一版发布前)

  • 优先使用 .AppImage 或一键安装脚本
  • 或对现有 deb dpkg-deb -R 拆包,手改 DEBIAN/controlPackage:dpkg-deb -b 重打

…ckage name

deb 打包时 productName 会被转成 kebab-case 作为 DEBIAN/control 的 Package
字段,而当前 productName 为中文 '兔子switch',导致 sudo dpkg -i 报
'必须以字母或数字开头'。Windows 构建早已通过 --config 覆盖 productName,
Linux 段遗漏,本次补齐。

同时新增 docs/bugfix-linux-deb-package-name.md 记录根因与修复。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant