示例项目背景
- 项目是基于tauri开发的;
- 现在在win10上通过qemu模拟arm架构并运行了ubuntu-22.04;
- 目标:tauri项目打包成可运行于arm架构上的ubuntu上的appimage应用程序
环境搭建相关
【qemu 环境搭建】
【系统内环境搭建】
系统依赖:
见:先决条件 -》系统依赖Rust:(已安装)
见:先决条件 -》Rust
命令:curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
版本:rustc --version -》rustc 1.88.0 (6b00bc388 2025-06-23)Tauri CLI 工具安装:(使用 cargo 安装 Tauri CLI)
命令:cargo install tauri-cli --version "^2.0.0" --locked
版本:cargo tauri --version -》tauri-cli 2.7.1xdg-open:(命令行工具)
命令:sudo apt-get install xdg-utils
版本:xdg-open --version -》xdg-open 1.1.3
.desktop 文件位置(自己创建):~/.local/share/applications/xdg-open.desktop
.desktop 文件内容:
···
[Desktop Entry]
Type=Application
Name=xdg-open
Exec=xdg-open %u
···bun 包管理器:(用于代替 npm)
命令:curl -fsSL https://bun.sh/install | bash
版本:bun --version -》1.2.19
打包相关操作
【方案 1:在线一键打包】(网络顺畅的情况)
cargo tauri build --bundles appimage --verbose
【方案 2:离线 分步 打包】(网络有问题,不分文件下载被墙的情况;目前遇到的主要是linuxdeploy-plugin-gtk.sh无法下载)
- 构建项目:(生成二进制文件)
cargo tauri build --bundles appimage --verbose --no-bundle
# 将在
------------ 以下步骤,待进一步验证,与之前的成功经历有些许不同 -------------
- 手搓 AppDir:
# 先创建干净的 AppDir:
cd ~/my-tauri-app/src-tauri/target/release/bundle/
APP=myapp # 你的可执行文件名(不含后缀)
VERSION=0.1.0 # 版本号
mkdir -p ${APP}.AppDir/usr/bin
mkdir -p ${APP}.AppDir/usr/share/applications
mkdir -p ${APP}.AppDir/usr/share/icons/hicolor/512x512/apps
# 拷贝相关文件
# 可执行文件
cp target/release/${APP} ${APP}.AppDir/usr/bin/
# .desktop 文件(Tauri 已经生成)
cp *.desktop ${APP}.AppDir/usr/share/applications/
# 图标(Tauri 已经生成)
cp *.png ${APP}.AppDir/usr/share/icons/hicolor/512x512/apps/
# 创建 AppRun 软链接(最简单方式)
ln -s usr/bin/${APP} ${APP}.AppDir/AppRun
# 拷贝 .desktop 到根目录,并改名为和可执行文件同名
cp *.desktop ${APP}.AppDir/${APP}.desktop
- 准备打包工具:
# 下载一次即可
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
# 或者手动复制链接到浏览器下载
- 打包:
./appimagetool-x86_64.AppImage ${APP}.AppDir
完成后你会得到
{VERSION}-x86_64.AppImage