0017. Linux 桌面版本分发(AppImage 与 DEB 双形态打包)
日期: 2026-08-24
状态: 提议 (Accepted)
上下文
自 v4.0.0 迁移至 Tauri 桌面应用后,CI 仅构建 Windows NSIS 安装器(.exe)。Linux 用户需要免安装的即开即用版本(直接运行)以及面向 Debian/Ubuntu 体系的标准安装包。
决策
分发包形态:
AppImage:真正的免安装单文件独立运行格式(内嵌 WebKitGTK 运行时桥接与 PyInstaller 打包的 Linux ELF sidecar 单文件,赋予执行权限后双击即可运行)。
.deb:Ubuntu / Debian 标准系统包(支持系统应用菜单与包管理器管理)。
沿用
packaging/tauri.release.conf.json分发配置,将 targets 统一设为["nsis", "appimage", "deb"]。
构建平台与 glibc 兼容性基线:
Linux 构建运行在
ubuntu-22.04runner 上,编译出的二进制依赖glibc >= 2.35,覆盖 Ubuntu 22.04/24.04、Debian 12、Fedora 37+、Arch 等绝大多数主流现代 Linux 桌面。
sidecar 与资源随包契约:
PyInstaller 运行在 Linux 环境,利用
packaging/tod_sidecar.spec构建出单文件 ELF 二进制dist/tod-sidecar。Tauri resource 将小内核(
kernels/)与tod-sidecar复制到src-tauri/binaries/tod-sidecar随 AppImage / deb 打包。运行时由 Tauri 壳在
resource_dir下拉起 sidecar,星历大内核沿用用户数据目录(~/.local/share/tod/kernels)按需解析。
CI Release 工作流更新:
在
.github/workflows/release.yml中新增build-linux独立 job(并行于build-windows)。自动将构建产物(
*.AppImage,*.deb)直传 GitHub Release 资产。
结果
Linux 用户获得了开箱即用(AppImage)与包管理器安装(deb)的完整支持。
全平台分发链路(Windows + Linux)完全对称且自动化。
修订(2026-08-26 复核):应用改名 tod → transfer-orbit-design 后,spec 与
产物名为 packaging/transfer_orbit_design_sidecar.spec 与
dist/transfer-orbit-design-sidecar;且内核(含行星历)经 Git LFS 随包分发,
不再依赖 ~/.local/share/tod/kernels 按需解析。以 .github/workflows/release.yml
为准。