尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

从源码构建Akagi:Rust + Tauri跨平台编译与打包完整指南

从源码构建Akagi:Rust + Tauri跨平台编译与打包完整指南 从源码构建Akagi:Rust Tauri跨平台编译与打包完整指南【免费下载链接】Akagi支持雀魂、天鳳、麻雀一番街、天月麻將能夠使用自定義的AI模型實時分析對局並給出建議內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuki, with the ability to use custom AI models to analyze games in real time and provide suggestions. Comes with Mortal AI as a built-in example.项目地址: https://gitcode.com/gh_mirrors/ak/Akagi从源码构建 Akagi 并不是一件难事只需要掌握 Rust Tauri 的组合套路即可。Akagi 是一款支持雀魂、天鳳、麻雀一番街等平台的实时麻将 AI 助手能在对局中实时分析手牌并给出切牌建议内置纯 Rust 实现的 Mortal AI 模型。本文将手把手带你完成从源码构建、跨平台编译到打包发布的完整流程无论你是想本地体验最新功能还是想为项目贡献代码这份指南都能派上用场。为什么要从源码构建 Akagi官方发布的便携版 zip 固然开箱即用但从源码构建有三大不可替代的价值抢先体验主分支往往包含尚未发布的修复与新功能比如对麻雀一番街桥接的改进、三麻Sanma支持优化定制化你可以修改 src/bot/ 下的机器人管理器、src/analysis/ 里的牌效率分析算法甚至替换内置模型学习架构Akagi 是单二进制 Rust 程序前端使用 React Vite是研究 Tauri 2 跨平台应用的绝佳范例。构建前必须准备的环境依赖不同操作系统需要不同的系统级依赖这是最容易踩坑的一步。通用要求Rust 稳定版1.80 及以上建议用 rustup 安装Node.js 20 与 npm用于编译前端Tauri CLIcargo install tauri-cli --locked。LinuxDebian/Ubuntu 系需要安装 WebKit2GTK 等图形库sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev \ libayatana-appindicator3-dev librsvg2-dev protobuf-compilermacOS只需 Xcode Command Line ToolsWindows则要求 WebView2Win10 1803 与 Win11 已预装。快速开始获取源码并安装前端依赖克隆仓库后先安装前端依赖。前端位于 frontend/其 package.json 使用 Vite 8 React 19 Tailwind CSS 4git clone https://gitcode.com/gh_mirrors/ak/Akagi cd Akagi cd frontend npm ci cd ..npm ci会严格按照 lockfile 安装比npm install更可复现。开发模式运行一行命令启动调试在开发模式下Tauri 会启动 Vite 开发服务器端口 1420见 vite.config.ts并代理到 WebViewcargo run这个命令会打开带热重载的桌面窗口前端改动即时生效非常适合边改边看。也可以传入自定义配置cargo run -- --config ./my-config.toml正式编译tauri build 的核心参数解析编译发布版需要两步先构建前端静态资源再编译 Rust 后端并组装。tauri.conf.json中的beforeBuildCommand已定义好npm ci npm run build前端产物输出到./frontend/dist。因此你只需执行cargo tauri build --no-bundle这里--no-bundle很关键它跳过安装包制作直接生成可执行文件target/target-triple/release/akagi。这样做的原因是 Akagi 采用便携 zip而非系统安装包的发布形态打包动作交给仓库自带的脚本完成。打包便携版fetch-runtime 与 package-zip 组合拳打包是构建 Akagi 最具特色的环节。为了让外部 mjai 机器人无需系统 Python 也能运行zip 内需要附带python-build-standalone与uv运行时。第一步为当前目标平台下载运行时scripts/fetch-runtime.shbash scripts/fetch-runtime.sh不带参数时自动检测宿主平台跨平台编译时显式指定 triple例如x86_64-pc-windows-msvc。脚本是幂等的重复执行不会重复下载。第二步打包成便携 zipscripts/package-zip.shbash scripts/package-zip.sh x86_64-unknown-linux-gnu输出位于dist/akagi-版本-os-arch.zip内含主程序、runtime/运行时目录、LICENSE.txt、NOTICE以及按平台生成的README.txt快速上手说明。打包时-y参数保留了 Python 目录内部的符号链接能让 zip 体积缩小近一半。提示内置的默认机器人并不需要 Python——它是用candle在 Rust 内做纯本地推理的轻量神经网络模型权重内嵌进二进制见 native_bot/。运行时仅服务于你在 Bots 面板里安装的外部 mjai 机器人。跨平台编译与打包的完整对照表目标平台Target Triple产物命名关键注意事项Linux x64x86_64-unknown-linux-gnuakagi-版本-linux-x64.zip官方 CI 基于 ubuntu-22.04 构建需 glibc 2.35运行需 WebKit2GTK 4.1macOS (Apple Silicon)aarch64-apple-darwinakagi-版本-macos-arm64.zip未签名首次运行需xattr -cr或右键打开暂不提供 Intel 版Windows x64x86_64-pc-windows-msvcakagi-版本-windows-x64.zip未签名SmartScreen 会警告需 WebView2跨平台交叉编译时Windows 目标还需要unzip工具打包脚本依赖它解压 uv 的 zip 包。常见构建错误与解决办法❌ Linux 编译报libwebkit2gtk缺失回到上文apt install一次装齐全部依赖注意版本必须是 4.1 系列。❌cargo tauri build提示找不到前端产物确认先执行过cd frontend npm ci且 npm 网络正常。❌ 打包时提示 binary not found at target/...先执行cargo tauri build --no-bundle生成二进制再跑package-zip.sh两者顺序不能颠倒。❌ macOS 上透明悬浮窗不生效该功能依赖macos-private-api特性Cargo.toml与tauri.conf.json中macOSPrivateApi: true必须保持一致否则编译期即报错。跑一遍测试确认构建环境正常仓库在 tests/ 下准备了丰富的集成测试覆盖分析管线、机器人生命周期、代理抓包等场景构建完成后建议跑一遍cargo test其中analysis_pipeline.rs会走完整的对局事件 → 向听数 → 切牌建议链路能快速验证你编译出的二进制分析引擎是否工作正常。总结从源码构建 Akagi 的完整流程回顾一下从源码构建 Akagi 只需四步装齐系统依赖 →npm ci装前端 →cargo tauri build --no-bundle编译 →fetch-runtime.shpackage-zip.sh打包。整套流程设计得非常工程化脚本均可重复执行跨平台支持 Linux、macOS、Windows 三端。构建成功后你会得到一个便携目录解压即用、备份即拷贝、删除即卸载——这也正是 Akagi 官方发布形态的魅力所在。现在就去克隆仓库动手构建属于你自己的麻将 AI 助手吧【免费下载链接】Akagi支持雀魂、天鳳、麻雀一番街、天月麻將能夠使用自定義的AI模型實時分析對局並給出建議內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuki, with the ability to use custom AI models to analyze games in real time and provide suggestions. Comes with Mortal AI as a built-in example.项目地址: https://gitcode.com/gh_mirrors/ak/Akagi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表