QzoneArchive 全平台安装指南:Windows / macOS / Android / Linux(deb、rpm、AppImage、NixOS)一网打尽
QzoneArchive 全平台安装指南:Windows / macOS / Android / Linux(deb、rpm、AppImage、NixOS)一网打尽
空间归档(QzoneArchive)是一款基于 Tauri 2 的本地 QQ 空间归档工具,可将 QQ 空间历史动态、照片、视频与互动记录安全保存到本机 SQLite 数据库中。本文以官方安装文档为主线,逐平台讲解如何从 Releases 下载并正确安装最新版本,涵盖 Windows、macOS、Android 以及 Linux 的 .deb、.rpm、.AppImage 和 NixOS 一键包四种形态,同时结合仓库源码(tauri.conf.json、nix/qzonearchive.nix、flake.nix)讲清楚每个包背后的打包细节、依赖要求与常见排错方法。读完本文,你可以根据自己设备的架构与发行版选择最合适的安装方式,并顺利完成首次启动。
从哪里获取安装包
所有官方安装包均发布在项目的 GitHub Releases 页面(原文档中给出的地址为 https://github.com/Gaoshu705/QzoneArchive/releases),下载与设备对应的最新版本即可。
安全提示:请始终只从项目的 Releases 页面获取安装包,不要使用第三方转载或来路不明的文件。
从仓库的构建配置(src-tauri/tauri.conf.json)可以看到,当前版本 1.0.3 的打包目标为:
"targets": ["nsis", "dmg", "app"]
即 Windows 使用 NSIS 安装程序,macOS 生成 .dmg,同时 Linux 侧由构建工作流额外产出 .deb、.rpm、.AppImage 与 NixOS 专用包(详见 website/release-process/index.md 中列出的发布产物清单)。
Windows:.exe 安装程序
Windows 用户直接下载 .exe 安装程序并运行,按引导完成安装即可。
系统要求:需要 Windows 10 或更新版本。Tauri 2 桌面端依赖 WebView2 运行时,Windows 10+ 通常已内置 WebView2,无需额外安装;配置文件中 webviewInstallMode 设为 downloadBootstrapper 且 silent: true(src-tauri/tauri.conf.json),即使用户系统缺失 WebView2,安装程序也会静默引导下载补装,不会中断流程。
从 NSIS 打包配置(src-tauri/tauri.conf.json)可以了解安装器的若干行为:
installMode: "currentUser":安装到当前用户目录,无需管理员权限;languages: ["SimpChinese", "English"]:安装界面支持简体中文与英文;startMenuFolder: "空间归档":开始菜单文件夹名为“空间归档”。
如需在终端里自行构建 Windows 安装包,仓库提供了现成脚本(package.json):
# 仅 NSIS 安装包
npm run tauri:build:windows
# NSIS + MSI 两种格式
npm run tauri:build:windows:all
macOS:按芯片选择 .dmg
macOS 用户需要根据设备 CPU 架构下载对应的 .dmg:
- Intel 芯片:下载 Intel 版本;
- Apple Silicon(M 系列):下载 Apple Silicon 版本。
首次启动的 Gatekeeper 提示:由于安装包未经过 Apple 公证,首次启动时系统可能在“系统设置 → 隐私与安全性”中提示确认是否打开来源未知的应用,按提示允许打开即可。这是 macOS 对未签名/未公证应用的常规拦截行为,不属于安装错误。
Android:.apk 侧载安装
移动端安装方式如下:
- 从 Releases 页面下载
.apk文件; - 允许浏览器或文件管理器安装未知来源应用;
- 按系统提示完成安装。
Android 端由 Tauri 移动端工程产出,标识符为 top.ehre.qzonearchive(见 src-tauri/gen/android/app/src/main/AndroidManifest.xml 对应配置),独立发布为 APK,与桌面端使用同一套 Rust 后端与 Vue 前端。
Linux:三种发行包与 NixOS 一键包
每个 Release 为 Linux 提供多种安装形式(具体文件名以 Release 页面实际下载到的为准,下文中用 *.ext 通配符代替实际扩展名):
| 包格式 | 适用发行版 |
|---|---|
.deb |
Debian、Ubuntu 及其衍生发行版 |
.rpm |
Fedora、openSUSE、RHEL 系发行版 |
.AppImage |
大多数桌面发行版,包括无法直接使用 .deb/.rpm 的发行版 |
qzonearchive-nixos-x86_64-linux.tar.gz |
NixOS 及其他使用 Nix 的 x86_64 Linux 系统 |
下面按发行版分组说明安装、卸载与排错。
Debian / Ubuntu:.deb
推荐使用 apt 直接安装:
sudo apt install ./*.deb
也可以使用 dpkg:
sudo dpkg -i *.deb
apt与dpkg的区别:
apt install:会自动联网补齐依赖,日常推荐使用;dpkg -i:只安装包本身,不处理依赖。如果提示缺少依赖,先执行下面的命令补装:sudo apt-get install -f
卸载:
sudo apt remove qzonearchive
如果提示找不到包,可用
dpkg -l | grep qzonearchive确认实际安装的包名(一般为qzonearchive)。
依赖说明:从仓库的 deb 打包配置(src-tauri/tauri.conf.json)可以看到,.deb 包声明了如下运行时依赖,安装时系统会一并处理:
"linux": {
"deb": {
"depends": [
"libwebkit2gtk-4.1-0",
"libgtk-3-0",
"gstreamer1.0-plugins-base",
"gstreamer1.0-plugins-good",
"gstreamer1.0-plugins-bad",
"gstreamer1.0-plugins-ugly",
"gstreamer1.0-libav",
"fonts-noto-cjk"
]
}
}
其中 libwebkit2gtk-4.1-0 是 Tauri 2 在 Linux 上的 WebView 运行时,GStreamer 系列插件用于视频播放,fonts-noto-cjk 保证中文字体渲染正常。
Fedora / openSUSE / RHEL 系:.rpm
sudo rpm -i *.rpm
卸载:
sudo rpm -e qzonearchive
如果提示找不到包,可用
rpm -qa | grep qzonearchive确认实际安装的包名(一般为qzonearchive)。
通用 AppImage:免安装绿色运行
AppImage 是免安装的绿色软件,适合无法直接使用 .deb/.rpm 的发行版:
chmod +x *.AppImage
./*.AppImage
FUSE 依赖问题:如果启动时报 libfuse.so.2 相关错误(常见于 Ubuntu 24.04 及以上版本),说明系统缺少 FUSE 2 运行时,先安装 FUSE 依赖,或改用免 FUSE 的解包运行方式:
sudo apt install libfuse2 # Debian / Ubuntu
./*.AppImage --appimage-extract-and-run
卸载:AppImage 是免安装的绿色软件,删除文件即可完成卸载。如果桌面环境没有自动集成应用菜单,可以自行创建 .desktop 文件,也可以直接把 AppImage 放到本地路径手动启动。
说明:从 tauri.conf.json 可以看到 AppImage 打包时启用了
bundleMediaFramework: true,会内置媒体播放框架,以保证视频播放能力在 AppImage 环境下开箱可用。
NixOS 与 Nix 用户:一条命令安装
每个 Release 提供 NixOS 二进制包 qzonearchive-nixos-x86_64-linux.tar.gz,内含预构建的完整 Nix store closure 与一键安装脚本,适用于 NixOS 及其他使用 Nix 的 x86_64 Linux 系统。安装只需一条命令:
tar -xzf qzonearchive-nixos-x86_64-linux.tar.gz && ./install.sh
安装脚本会把依赖导入 /nix/store 并安装到当前用户 profile。提示输入密码时输入当前用户密码即可(与 apt/dpkg 相同)。完成后在终端运行:
qzonearchive
注意:请运行包内
./install.sh完成安装,不要手动对解压目录执行nix profile install或直接运行二进制——应用依赖的 store 路径必须先导入,跳过导入会导致运行时报缺少依赖。
NixOS 用户无需 AppImage / deb / rpm,请直接使用上方的一键安装包。一键包之外,项目还提供源码构建用的 Nix Flake(flake.nix),NixOS 用户可以进入项目目录执行:
nix build
./result/bin/qzonearchive
也可以安装到当前用户 profile:
nix profile install .#qzonearchive
Flake 的构建逻辑定义在 nix/qzonearchive.nix,要点包括:
- 基于
rustPlatform.buildRustPackage,以src-tauri为cargoRoot,并声明了cargoHash与npmDeps两个固定哈希,保证可复现构建; - Linux 下通过
wrapGAppsHook4包装可执行文件,并注入 CJK 字体配置(FONTCONFIG_FILE,见 nix/qzonearchive.nix),保证中文字体在纯 Nix 环境中正常显示; postInstall阶段会自动安装桌面图标与.desktop启动项(应用名为“空间归档”,见 nix/qzonearchive.nix),因此通过 Flake 安装后也能在桌面环境的应用菜单中找到应用。
安装完成后如何登录与使用
安装并启动应用后,首次使用需要先完成 QQ 空间授权。空间归档本身不绑定、不内置 QQ 客户端,只是借用 QQ 空间的登录授权读取归档数据,具体方式为:
- Linux 用户安装 QQ 客户端时,请按自己发行版的要求选择 QQ 官方提供的 deb、rpm 或 Flatpak 版本;
- 登录 QQ 空间后,扫描空间归档应用内的二维码即可完成授权并开始归档,全程不接触密码(二维码登录逻辑位于 src-tauri/src/qlogin.rs)。
从源码构建 Linux 版本
如果希望自行从源码构建 Linux 版本,可参考仓库的开发文档。其前置要求为 Node.js 20+、Rust 1.77+,Windows 开发环境还需 WebView2;本地构建 Linux 安装包时,发布流程文档给出的完整步骤是:
sudo apt install -y \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf
npm ci
npx tauri build --bundles appimage,deb,rpm
其中 libwebkit2gtk-4.1-dev、libssl-dev、libayatana-appindicator3-dev 等正是 Tauri 2 Linux 构建链所需的系统依赖;npx tauri build --bundles appimage,deb,rpm 会一次性产出三种 Linux 包,与 Releases 页面的发布产物一一对应。
常见问题速查
| 现象 | 原因 | 处理方式 |
|---|---|---|
| macOS 首次启动提示来源未知 | 未公证应用的 Gatekeeper 拦截 | “隐私与安全性”中允许打开 |
Ubuntu 24.04 启动 AppImage 报 libfuse.so.2 缺失 |
系统无 FUSE 2 | sudo apt install libfuse2 或使用 --appimage-extract-and-run |
dpkg -i 提示缺少依赖 |
依赖未一并安装 | sudo apt-get install -f 补装 |
apt remove / rpm -e 提示找不到包 |
包名记忆有误 | 用 dpkg -l | grep qzonearchive / rpm -qa | grep qzonearchive 确认 |
| NixOS 运行一键包内二进制报缺依赖 | 未执行 ./install.sh 导入 store |
务必先运行包内 ./install.sh |
小结
QzoneArchive 覆盖了桌面与移动端的全部主流平台:Windows 10+ 用 NSIS 安装器(WebView2 自动兜底)、macOS 按 Intel/Apple Silicon 选 .dmg、Android 侧载 .apk,Linux 则按发行版在 .deb、.rpm、.AppImage 与 NixOS 一键包之间选择。其中 NixOS 一键包通过预构建 store closure 实现了“一条命令安装”,是 Nix 生态用户最省心的路径。安装完成后扫描 QQ 空间二维码即可开始归档,数据全部保存在本地应用数据目录,不上传任何服务器。