跳到内容
Tauri

AppImage

AppImage 是一种分发格式,不依赖于系统已安装的软件包,而是捆绑应用程序所需的所有依赖项和文件。因此,输出文件更大,但由于它支持许多 Linux 发行版并且无需安装即可执行,因此分发起来更容易。用户只需使文件可执行 (chmod a+x MyProject.AppImage),然后即可运行它 (./MyProject.AppImage)。

AppImages 很方便,如果您无法创建针对发行版包管理器的软件包,它们可以简化分发过程。但是,您应该仔细使用它,因为文件大小会从 2-6 MB 增加到 70+ MB。

glibc 等核心库经常破坏与旧系统的兼容性。因此,您必须使用您打算支持的最旧的基本系统构建您的 Tauri 应用程序。像 Ubuntu 18.04 这样相对较旧的系统比 Ubuntu 22.04 更适合,因为在 Ubuntu 22.04 上编译的二进制文件对 glibc 版本的​​要求更高,因此在旧系统上运行时,您将面临诸如 /usr/lib/libc.so.6: version 'GLIBC_2.33' not found 之类的运行时错误。我们建议使用 Docker 容器或 GitHub Actions 为 Linux 构建您的 Tauri 应用程序。

有关更多信息,请参阅问题 tauri-apps/tauri#1355rust-lang/rust#57497,以及 AppImage 指南

如果您的应用播放音频/视频,则需要启用 tauri.conf.json > bundle > linux > appimage > bundleMediaFramework。这将增加 AppImage 包的大小,以包含媒体播放所需的额外 gstreamer 文件。此标志目前仅在 Ubuntu 构建系统上完全支持。确保您的构建系统具有您的应用在运行时可能需要的所有插件。

要在 AppImage 中包含您不想通过 Tauri 的 resources 功能包含的自定义文件,您可以在 tauri.conf.json > bundle > linux > appimage > files 中提供文件或文件夹列表。配置对象将 AppImage 中的路径映射到文件系统上文件的路径,相对于 tauri.conf.json 文件。这是一个示例配置

tauri.conf.json
{
"bundle": {
"linux": {
"appimage": {
"files": {
"/usr/share/README.md": "../README.md", // copies the ../README.md file to <appimage>/usr/share/README.md
"/usr/assets": "../assets/" // copies the entire ../assets directory to <appimage>/usr/assets
}
}
}
}
}

Tauri 使用的 AppImage 工具 linuxdeploy 目前不支持交叉编译 ARM AppImage。这意味着 ARM AppImage 只能在 ARM 设备或模拟器上构建。

请查看我们的GitHub Action 指南,了解利用 QEMU 构建应用程序的示例工作流。请注意,这非常慢,仅建议在公共存储库中使用,因为构建时间是免费的。在私有存储库中,GitHub 的 ARM runner 应该更具成本效益且更易于设置。


© 2025 Tauri 贡献者。CC-BY / MIT