Ubuntu 22.04 安装 Meetily 0.4.1 指南

在 Ubuntu 22.04 上从源码构建安装 Meetily 0.4.1 桌面应用的完整实测指南:系统依赖与 Tauri 工具链(Node 20/pnpm 9.15.9/Rust)、build-gpu.sh 自动 GPU 探测构建、llama-helper 与 ffmpeg sidecar 排障实录、产物验证与卸载清理

meetily会议纪要WhisperOllama自托管Tauri2026/10/23

Ubuntu 22.04 安装 Meetily 0.4.1 指南

目标:在 Ubuntu 22.04 服务器/工作站上从官方源码完成 Meetily v0.4.1(Tauri 桌面应用)的 0→1 构建安装,产出可安装的 deb 包与 AppImage 便携包。本文全部命令与回显均在 Ubuntu 22.04 (x86_64) 实测通过,包含两个关键排障实录(llama-helper sidecar 缺失、ffmpeg sidecar 缺失),读者按序执行即可复现。

一、环境信息

  • 操作系统:Ubuntu 22.04 LTS(x86_64)
  • 内核:Linux 5.15+(实测 5.15)
  • Meetily 版本:v0.4.1(2026-10-23 实查 GitHub Releases 最新稳定版,仓库标签 v0.4.1,提交 a2cb62e Release v0.4.1)
  • 官方仓库:https://github.com/Zackriya-Solutions/meetily (早期名称 meeting-minutes,GitHub 自动重定向;官方 README 的克隆命令仍用旧名,两者等价)
  • 构建工具链实测版本:gcc 11.4.0 / cmake 3.22.1 / git 2.34.1 / Node.js v20.20.2 / pnpm 9.15.9 / rustc 1.99.1(rustup stable,官方要求 Rust ≥ 1.77)
  • Tauri 系统库实测版本:webkit2gtk-4.1 2.50.4 / gtk+-3.0 3.24.33 / libayatana-appindicator3 0.5.90
  • 产物路径:/root/work/meetily/target/release/bundle/ 下 appimage/meetily_0.4.1_amd64.AppImage 与 deb/meetily_0.4.1_amd64.deb(Rust 工作区共享顶层 target 目录,产物落顶层而非 frontend/src-tauri/target/)
  • 构建形态:CPU-only 模式(无 GPU 的干净环境);CUDA/Vulkan/ROCm 加速路线见第五章

二、前置条件

  1. 一台 Ubuntu 22.04 机器(物理机或虚拟机均可),具有 sudo 权限的账号;构建产物是桌面 GUI 应用,运行需要图形环境(X11/Wayland 桌面),纯构建在无桌面机器上也能完成。
  2. 磁盘空间 ≥ 10 GB(前端 node_modules 约 830 MB,Rust 编译缓存 target 约 2–4 GB,中间产物较多)。
  3. 内存建议 ≥ 4 GB;Rust 编译并行度高,内存吃紧时可降低并行度(见第九章 FAQ)。
  4. 可访问 GitHub 与 nodejs.org 的网络;下载缓慢时可为单条命令挂代理(如 wget -x http://192.168.1.62:7897 <URL>,按实际代理地址替换)。

三、版本选型说明

Meetily 官方只对 macOS 与 Windows 发布预编译安装包,Linux 官方明确走源码构建(README:「Linux: Build from source」)。因此 Ubuntu 上的安装选型实质是「构建配置选型」:

构建配置适用硬件说明
CPU-only(默认自动)无 GPU / 未装 GPU SDK纯 CPU 转写,配置最简单,本篇主线
OpenBLAS任意 x86_64,装 libopenblas-devCPU 上 BLAS 加速,需设置 BLAS_INCLUDE_DIRS
VulkanNVIDIA/AMD/Intel 均可装 Vulkan SDK + libopenblas-dev
CUDANVIDIA(算力 5.0+)装 nvidia 驱动 + CUDA 工具链
ROCm (HIPBlas)AMD RX 5000+装 rocm-smi/hipcc

关键结论:只装驱动不够,必须装对应开发 SDK(CUDA toolkit / ROCm / Vulkan SDK),构建脚本的自动探测才会启用加速(官方 BUILDING.md 明确说明,详见第五章探测优先级表)。没有 GPU 或不想折腾时,直接用主线 CPU-only 构建即可,功能完整、仅转写速度慢一些。

版本约定:源码版本固定在 v0.4.1 标签(当前最新稳定版);pnpm 固定 9.15.9(官方 BUILDING.md 指定版本,lockfile 与该版本对齐);Node.js 用 20.x LTS。

四、安装方案 A:官方源码构建(GPU 自动探测,主线)

4.1 方案说明

官方推荐路径:装系统依赖 → 装 Node 20 + pnpm 9.15.9 → 装 Rust → 克隆仓库 → pnpm install --frozen-lockfile → ./build-gpu.sh。build-gpu.sh 会自动探测 GPU 并配置转写引擎加速特性,编译 llama-helper sidecar 并复制到位,最后调用 Tauri 打包出 deb 与 AppImage。全程一条脚本完成,无 GPU 时自动落回 CPU 模式。

4.2 安装系统依赖

先更新软件源并安装编译基础工具(gcc/make/cmake/git)与 Tauri 官方要求的 Linux 系统库(WebKitGTK 等,Tauri 2.x 在 Linux 上渲染与托盘必需):

sudo apt update
sudo apt install -y build-essential cmake git curl wget file

实测回显(依赖已就位时的状态,首次安装会列出各包的下载与解包过程,效果一致):

git is already the newest version (1:2.34.1-1ubuntu1.18).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

安装 Tauri 官方要求的 Linux 开发库(官方 Tauri 预备清单 + Meetily 构建实际需要的组件):

sudo apt install -y libwebkit2gtk-4.1-dev libssl-dev libxdo-dev \
  libayatana-appindicator3-dev librsvg2-dev ffmpeg

验证系统库就位(pkg-config 能查到版本即代表开发库可用):

pkg-config --modversion webkit2gtk-4.1 gtk+-3.0

实测回显:

2.50.4
3.24.33

⚠️ 注意:ffmpeg 一并装上——它是 Meetily 打包声明的第二个 sidecar(音频解码导入),后面 4.8 步会把它复制进打包目录;提前装好可避免构建到打包阶段才报错(实测踩坑,见 4.8 与第九章 FAQ Q2)。

4.3 安装 Node.js 20

用 nodejs.org 官方二进制包安装 Node 20 LTS(解压即用,不污染 apt 源):

curl -fsSLO https://nodejs.org/dist/v20.20.2/node-v20.20.2-linux-x64.tar.xz
sudo tar -xf node-v20.20.2-linux-x64.tar.xz -C /usr/local --strip-components=1
rm node-v20.20.2-linux-x64.tar.xz

验证:

node -v && npm -v

实测回显:

v20.20.2
10.8.2

💡 说明:NodeSource apt 源、nvm 等方式同样可用,关键是保证 Node 20 大版本(官方构建在 Next.js 14 + Tauri 2 组合下验证)。本文选二进制包方式,便于多版本切换与离线安装。

4.4 安装 pnpm 9.15.9

官方 BUILDING.md 指定 pnpm 9.15.9(与仓库 pnpm-lock.yaml 对齐),用 npm 全局安装:

sudo npm install -g pnpm@9.15.9

实测回显(节选):

1 package is looking for funding
  run `npm fund` for details
pnpm -v

实测回显:

9.15.9

4.5 安装 Rust 工具链

用官方 rustup 脚本安装(官方要求 Rust ≥ 1.77;rustup 默认装最新 stable):

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"

实测验证:

rustc --version && cargo --version
rustup show active-toolchain

实测回显:

rustc 1.99.1 (58cf8f9c3 2026-10-13)
cargo 1.99.1 (5f94df478 2026-08-27)
stable-x86_64-unknown-linux-gnu (default)

4.6 获取源码

克隆官方仓库并固定到 v0.4.1 标签:

git clone https://github.com/Zackriya-Solutions/meetily
cd meetily
git checkout v0.4.1

实测回显(克隆阶段;checkout 无独立输出):

Cloning into 'meetily'...
remote: Enumerating objects: 9157, done: 100% (详见实际网络情况)
Receiving objects: 100% (9157/9157), 61.00 MiB | 12.50 MiB/s, done.

💡 说明:官方 README 中的克隆地址为旧仓库名 https://github.com/Zackriya-Solutions/meeting-minutes,GitHub 对更名仓库永久重定向,两个 URL 实测等价。克隆深度可加 --depth 1 省流量,但保留完整历史便于 git checkout v0.4.1 切版本(浅克隆需 git fetch --depth 1 origin tag v0.4.1)。

4.7 安装前端依赖

进入 frontend/ 目录,按 lockfile 严格模式安装(官方强调 frozen 安装保证依赖与锁定版本一致):

cd frontend
pnpm install --frozen-lockfile

实测回显(首次安装,输出节选——末行为包清单摘要与总耗时):

Lockfile is up to date, resolution step is skipped
+ react-test-renderer 18.3.1
+ tailwindcss 3.4.19
+ typescript 5.9.3
+ wait-on 7.2.0

Done in 13.4s using pnpm v9.15.9

已在缓存环境下重复执行时实测回显:

Lockfile is up to date, resolution step is skipped
Already up to date

Done in 712ms using pnpm v9.15.9

验证依赖目录就位:

du -sh node_modules

实测回显:

824M    node_modules

4.8 执行构建

在 frontend/ 目录运行官方构建脚本:

./build-gpu.sh

实测回显(开头,CPU 环境下的自动探测结果):

🚀 Meetily GPU-Accelerated Build Script

📦 Building Meetily...

🔍 Detecting GPU features...
💻 No GPU acceleration available - using CPU-only mode
⚠️ No specific GPU feature detected or forced

🦙 Building llama-helper sidecar (release)...
   Building in /root/work/meetily/frontend/../llama-helper with features: none

脚本按顺序完成四件事,每步在输出中可核对:

  1. GPU 探测:调用 scripts/auto-detect-gpu.js,无 GPU SDK 时打印「No GPU acceleration available - using CPU-only mode」;
  2. 编译 llama-helper sidecar(cargo build --release,摘要引擎的 llama.cpp 封装;首次编译约数分钟);
  3. 复制 sidecar:产物从 target/release/llama-helper 复制为 src-tauri/binaries/llama-helper-x86_64-unknown-linux-gnu(Tauri 打包要求的外部二进制命名规则);
  4. Tauri 完整构建:先跑 Next.js 生产构建,再编译 Rust 核心,最后打包 deb 与 AppImage。

实测回显(构建收尾,Rust 编译与打包阶段;AppImage 打包前的 linuxdeploy 组件下载行从略):

warning: `meetily` (lib) generated 9 warnings (run `cargo fix --lib -p meetily` to apply 5 suggestions)
    Finished `release` profile [optimized] target(s) in 1m 13s
       Built application at: /root/work/meetily/target/release/meetily
        Info Patching /root/work/meetily/target/release/meetily with bundle type information: deb
    Bundling meetily_0.4.1_amd64.deb (/root/work/meetily/target/release/bundle/deb/meetily_0.4.1_amd64.deb)
        Info Patching /root/work/meetily/target/release/meetily with bundle type information: appimage
    Bundling meetily_0.4.1_amd64.AppImage (/root/work/meetily/target/release/bundle/appimage/meetily_0.4.1_amd64.AppImage)
    Finished 2 bundles at:
        /root/work/meetily/target/release/bundle/deb/meetily_0.4.1_amd64.deb
        /root/work/meetily/target/release/bundle/appimage/meetily_0.4.1_amd64.AppImage

💡 说明:Finished ... in 1m 13s 是依赖缓存命中后的增量时长;首次构建需完整编译全部 Rust 依赖,耗时以数十分钟计。Rust 工作区(顶层 Cargo.toml)与 frontend/src-tauri 共享顶层 target/ 目录,因此 deb/AppImage 产物出现在 /root/work/meetily/target/release/bundle/ 而不是 frontend/src-tauri/target/。

⚠️ 排障实录四(ort-sys 依赖下载超时):Rust 编译阶段报 error: failed to run custom build command for ort-sys v2.0.0-rc.10,错误详情为 Failed to download from https://cdn.pyke.io/0/pyke:ort-rs/ms@1.22.0/x86_64-unknown-linux-gnu.tgz: timeout: global(实测两次构建均复现)。原因:ort-sys 的构建脚本要从 pyke.io CDN 下载 onnxruntime 预编译包(Parakeet ONNX 转写引擎的推理运行时),跨境链路直连超时。解决(实测有效):在构建会话内导出代理环境变量后重跑:

export http_proxy=http://192.168.1.62:7897 https_proxy=http://192.168.1.62:7897
./build-gpu.sh

重跑时已编译依赖全部命中缓存,Rust 主程序 1m 13s 完成;onnxruntime 包下载成功后存入构建缓存,后续构建不再访问该 CDN。

⚠️ 注意(updater 签名报错不影响主产物):两个 bundle 打完后,构建脚本可能以如下错误收尾(实测):

A public key has been found, but no private key. Make sure to set `TAURI_SIGNING_PRIVATE_KEY` environment variable.
       Error A public key has been found, but no private key. Make sure to set `TAURI_SIGNING_PRIVATE_KEY` environment variable.
 ELIFECYCLE  Command failed with exit code 1.

这是 tauri.conf.json 开启了 bundle.createUpdaterArtifacts: true 且配置了 updater 公钥,Tauri 在为「应用内自更新」生成增量签名包时要求私钥。deb 与 AppImage 主产物此时已经产出并可用,仅更新器增量包(*.sig 签名文件)缺失。处理:自建分发场景忽略该错误即可;若要补全更新器产物,用 pnpm tauri signer generate -w ~/.tauri/meetily.key 生成密钥对,再 export TAURI_SIGNING_PRIVATE_KEY=~/.tauri/meetily.key 与 TAURI_SIGNING_PRIVATE_KEY_PASSWORD 后重跑打包。注意自生成密钥与源码内置公钥不匹配,应用内更新校验会拒绝自签名包——自建分发应将 tauri.conf.json 中 plugins.updater.pubkey 一并替换为自己密钥对的公钥。

⚠️ 排障实录一(llama-helper sidecar 缺失):如果跳过 build-gpu.sh 直接执行 pnpm run tauri:build,Rust 编译会在 tauri-build 检查外部二进制时直接失败,实测报错:

error: failed to run custom build command for `app v0.4.1 (/root/work/meetily/frontend/src-tauri)`
resource path `binaries/llama-helper-x86_64-unknown-linux-gnu` doesn't exist
warning: build failed, waiting for other jobs to finish...

原因:tauri.conf.json 的 bundle.externalBin 声明了 binaries/llama-helper,Tauri 要求打包前该文件必须以「名称-目标三元组」格式存在。解决:始终走 ./build-gpu.sh(自动编译并复制);或手动补齐——cargo build --release -p llama-helper 后 mkdir -p src-tauri/binaries && cp target/release/llama-helper src-tauri/binaries/llama-helper-x86_64-unknown-linux-gnu。

⚠️ 排障实录二(ffmpeg sidecar 缺失):externalBin 同时声明了 binaries/ffmpeg,若 src-tauri/binaries/ 下没有 ffmpeg(克隆的仓库不含二进制文件),构建在 sidecar 检查阶段同样失败。解决(实测有效):

sudo apt install -y ffmpeg
cp $(which ffmpeg) src-tauri/binaries/ffmpeg-x86_64-unknown-linux-gnu

验证复制结果:ls -la src-tauri/binaries/ 应看到 ffmpeg-x86_64-unknown-linux-gnu(实测 301544 字节,ffmpeg 4.4.2)。AppImage 打包时 linuxdeploy 会把动态链接的音视频库一并收集进包内。

⚠️ 排障实录三(并发构建的文件锁):Rust 构建目录有进程锁,同一仓库上同时跑两个构建会看到 Blocking waiting for file lock on build directory——这是正常等待,等前一个构建退出后自动继续;不要手动删除 target/ 目录去"解锁"。

4.9 构建产物与验证

列出并验证产物:

ls -lh /root/work/meetily/target/release/bundle/appimage/ /root/work/meetily/target/release/bundle/deb/
file /root/work/meetily/target/release/bundle/appimage/meetily_0.4.1_amd64.AppImage

实测回显:

/root/work/meetily/target/release/bundle/appimage/:
total 151M
-rwxr-xr-x 1 root root 151M Oct 23 06:42 meetily_0.4.1_amd64.AppImage
drwxr-xr-x 4 root root 4.0K Oct 23 06:42 meetily.AppDir

/root/work/meetily/target/release/bundle/deb/:
total 29M
-rw-r--r-- 1 root root  29M Oct 23 06:42 meetily_0.4.1_amd64.deb
drwxr-xr-x 4 root root 4.0K Oct 23 06:42 meetily_0.4.1_amd64
meetily_0.4.1_amd64.AppImage: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, BuildID[sha1]=ef655b05ac26feebfd3bc24ec7ccb30389cefc33, stripped

两种安装方式:

# 方式一:AppImage 直接运行(无需安装,赋予执行权限即可)
chmod +x /root/work/meetily/target/release/bundle/appimage/meetily_0.4.1_amd64.AppImage
/root/work/meetily/target/release/bundle/appimage/meetily_0.4.1_amd64.AppImage

# 方式二:deb 安装进系统(sudo dpkg -i,可被桌面菜单检索)
sudo dpkg -i /root/work/meetily/target/release/bundle/deb/meetily_0.4.1_amd64.deb

运行验证:桌面环境中启动后出现标题为「meetily」的窗口(1100×700);首次启动在应用设置页选择转写模型(Whisper/Parakeet,应用内下载)并配置 LLM 端点即可开始使用,配置项详解见《Meetily 0.4.1 配置参数详解》。

五、安装方案 B:指定加速后端的手动构建

5.1 GPU 自动探测优先级

build-gpu.sh 的探测顺序(官方 BUILDING.md 实录):

优先级硬件探测条件构建特性
1NVIDIA CUDAnvidia-smi 存在且(CUDA_PATH 或 nvcc 可用)--features cuda
2AMD ROCmrocm-smi 存在且(ROCM_PATH 或 hipcc 可用)--features hipblas
3Vulkanvulkaninfo 存在且 VULKAN_SDK 与 BLAS_INCLUDE_DIRS 均设置--features vulkan
4OpenBLASBLAS_INCLUDE_DIRS 已设置--features openblas
5CPU-only以上均不满足无特性(纯 CPU)

5.2 CUDA 路线(NVIDIA,算力 5.0+)

sudo apt install -y nvidia-driver-550 nvidia-cuda-toolkit
nvidia-smi          # 确认驱动与 GPU 可见
nvcc --version      # 确认 CUDA 编译器就位

按 GPU 算力设置架构变量后构建(RTX 30 系=86,RTX 40 系=89,查询命令 nvidia-smi --query-gpu=compute_cap --format=csv):

CMAKE_CUDA_ARCHITECTURES=86 \
CMAKE_CUDA_STANDARD=17 \
CMAKE_POSITION_INDEPENDENT_CODE=ON \
./build-gpu.sh

5.3 Vulkan 路线(跨厂商回退)

sudo apt install -y vulkan-sdk libopenblas-dev
export VULKAN_SDK=/usr
export BLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu
./build-gpu.sh

5.4 强制指定特性与验证

不依赖自动探测时,用 TAURI_GPU_FEATURE 环境变量强制(可选值 cuda / hipblas / vulkan / openblas / 空字符串=CPU):

TAURI_GPU_FEATURE=vulkan ./build-gpu.sh    # 强制 Vulkan
TAURI_GPU_FEATURE="" ./build-gpu.sh        # 强制纯 CPU

构建回显中「Detected GPU feature」一行即为生效特性,例:

✅ Detected GPU feature: vulkan

无对应 SDK 却强制指定会以编译错误收场(缺头文件/链接失败),回退 CPU 模式重新执行即可恢复。

六、方案对比与选择建议

维度方案 A:build-gpu.sh 自动构建方案 B:强制加速构建
适用硬件任意(自动回退 CPU)需对应 GPU 与开发 SDK
前置安装量仅基础工具链额外 CUDA/ROCm/Vulkan SDK
转写速度CPU 实时率约 1x,够用但长会议偏慢GPU 加速,长会议实时性更好
失败面低(无硬件依赖)中(SDK 版本/架构变量敏感)
推荐人群首次安装、无 GPU、快速验证已有 GPU 且追求转写延迟

选择建议:先用方案 A 跑通完整闭环,确认业务流程满足需求后,再评估是否投入 GPU SDK 配置升级到方案 B;两条路线的构建脚本相同,仅环境变量不同,切换成本很低。

七、安装后配置说明

  1. 首次启动:AppImage 直接运行或 deb 安装后从桌面菜单启动。数据全部落在本机用户应用数据目录(SQLite 数据库、录音与转写文本、模型缓存均在该目录下),无任何云端上传路径。
  2. 转写模型:在应用设置页选择 Whisper(多语言通用)或 Parakeet(低延迟英文向)模型,应用内点击下载,模型文件落本地数据目录;换模型/换语言可通过 Import & Enhance 对已录会议重转。
  3. LLM 端点:推荐本地 Ollama(默认端点 http://localhost:11434);也可配置 Claude/Groq/OpenRouter 或任意 OpenAI 兼容端点。配置项含义与取值详见《Meetily 0.4.1 配置参数详解》。
  4. 音频设备:设置页可分别选择麦克风与系统输出设备作为采集源,内置 ducking 自动压低回放音量,避免转写串音。
  5. 开机自启(可选):桌面环境的「启动应用程序」中加入 AppImage 路径即可;Meetily 本体无系统服务形态,无需 systemd 单元。

八、升级与多版本管理

  • 升级到新版本:git fetch --tags && git checkout vX.Y.Z 后重跑 pnpm install --frozen-lockfile && ./build-gpu.sh——Rust 编译缓存(target/)会复用未变更的依赖,增量构建明显快于首次。
  • 应用内自更新:桌面端内置 Tauri updater,对接 GitHub Releases 的 latest.json 清单,源码构建的 deb/AppImage 同样可收到更新提示(更新包从 GitHub Releases 下载)。
  • 多版本共存:用 git 标签切换构建目录即可,产物文件名自带版本号(meetily_0.4.1_amd64.AppImage),不同版本产物可并存;deb 安装的新版本会覆盖旧版本(同包名)。
  • 回退:git checkout v0.3.0(示例)重走 4.7–4.9;已装 deb 回退用 sudo dpkg -i 安装旧版本包。

九、常见问题(FAQ)

Q1:直接 pnpm run tauri:build 报 resource path binaries/llama-helper-... doesn't exist? 见 4.8 排障实录一。Tauri 打包要求 sidecar 二进制预先放在 src-tauri/binaries/ 并带目标三元组后缀;build-gpu.sh 的职责之一就是编译并复制它,所以请始终通过 ./build-gpu.sh 构建,或手动补齐两个 sidecar(llama-helper + ffmpeg)。

Q2:打包阶段报 binaries/ffmpeg 相关缺失? 见 4.8 排障实录二。执行 sudo apt install -y ffmpeg && cp $(which ffmpeg) src-tauri/binaries/ffmpeg-x86_64-unknown-linux-gnu 后重新构建。ffmpeg 是 Meetily 音频导入/解码的外部二进制,仓库不含它,需系统提供。

Q3:构建长时间停在 Blocking waiting for file lock on build directory? 有另一个 cargo 构建进程在用同一 target/ 目录(可能是不久前失败/中断的构建)。等待其退出即可;确认无构建需求后也可用 pkill -f "cargo build" 结束遗留进程再重跑(会释放锁,已编译产物仍在缓存中,不会丢失进度)。

Q4:Rust 编译阶段内存耗尽(编译器被 OOM 杀掉,报 signal: 9, SIGKILL)? codegen-units=1 + lto=true(llama-helper 的 release 配置)与 tauri 大依赖树对内存要求较高。降低并行度重试:CARGO_BUILD_JOBS=2 ./build-gpu.sh;或临时增加 swap(sudo fallocate -l 4G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile)。

Q5:Next.js 构建阶段慢或卡住? tauri:build 内嵌 pnpm build(next build,实测 Next.js 14.2.35,产物为静态导出 out/ 目录)。该阶段只依赖 Node,与网络无关,通常 1–2 分钟;卡住多为主机内存/IO 紧张,观察进程确认仍在推进即可。

Q6:GPU 驱动装了,为什么构建还是 CPU-only? 自动探测要求「驱动 + 开发 SDK」齐备(nvcc/hipcc/vulkaninfo 可执行且环境变量就位),只有驱动不会启用加速(官方 BUILDING.md 明确的 Key Insight)。按第五章对应路线补装 SDK,或用 TAURI_GPU_FEATURE 强制并核对 5.4 的回显行。

Q7:AppImage 双击/运行报缺库(libwebkit2gtk 等)? AppImage 内已收集大部分链接库,但显示服务相关库依赖桌面环境。在 Ubuntu 22.04 桌面版上直接可运行;无桌面的服务器上构建出的包,拷贝到桌面机器运行即可。deb 安装会自动拉齐依赖(sudo apt -f install 补齐缺失项)。

十、卸载与清理

# 卸载 deb 安装的包
sudo dpkg -r meetily

# 删除源码与构建缓存(含 target 编译产物,2–4 GB)
cd ~/meetily/frontend
rm -rf node_modules src-tauri/target ../../target
cd ../.. && rm -rf meetily

# 清理全局工具(按需):pnpm 与 Rust 工具链
sudo npm uninstall -g pnpm
rustup self uninstall

用户数据(会议记录、模型缓存)在应用数据目录中,卸载软件包不会删除;如需彻底清理,删除对应应用数据目录即可。

十一、参考链接