
Try Omarchy 开发者指南Docker 复现 ARM64 镜像、打补丁的 QEMU 与 make build 全流程【免费下载链接】try-omarchyRun Omarchy on MacOS without any setup.项目地址: https://gitcode.com/gh_mirrors/tr/try-omarchy[]想自己构建 Try Omarchy 这个 macOS 虚拟机应用吗Try Omarchy 可以把 Omarchy一套 Arch Linux 桌面环境打包成 Apple Silicon Mac 上的原生硬件加速 App。这篇文章带你从零走完全流程理解项目结构、检查构建环境、用 Docker 复现 ARM64 客户机镜像、构建打了补丁的 QEMU 运行时最后用make build一键组装并启动整个 App。一、先认识 App 的三大组成部分在动手之前先理解这个应用由哪三块拼成细节见 docs/architecture.mdSwift/AppKit 启动器——位于macos/负责权限管理、界面、磁盘管理和启动 QEMU打了补丁的 QEMU 运行时——同样在macos/使用 Apple 的 Hypervisor FrameworkHVF加速配合 VirGL 把 Linux 里的 OpenGL 指令重放到 Mac 的 GPU 上ARM64 Arch Linux 镜像——位于guest/包含锁死版本的 Omarchy 上游源码由项目自己在 Docker 中构建而非官方预构建镜像。Try Omarchy.app └── Swift 启动器 └── QEMU Apple Hypervisor Framework └── 项目自建的 ARM64 Linux 镜像 └── Omarchy 桌面所有生成物统一输出到被 Git 忽略的dist/目录仓库本身保持干净。二、构建环境检查一条命令完成预检️ 构建只在Apple Silicon Macarm64 macOS 15 或更新上工作。完整要求见根 README.md 的 Development requirements 一节Xcode 命令行工具Swift 6Python 3、pkg-config最简单的方式是brew install pkg-config一个支持特权linux/arm64容器的 Docker 引擎约 20 GB 空闲磁盘空间给 Linux 构建器留足内存工具链就绪后运行预检命令make doctor它会检查 macOS 版本、芯片架构以及curl、docker、pkg-config、python3、swift、xcrun是否都可用并确认 Docker 引擎正在运行。全部通过会输出类似Toolchain ready: 26.x (arm64)的提示。三、用 Docker 复现 ARM64 镜像make guest 的幕后细节make guest是整个构建中最重的一步产物写入dist/guest/。它的核心逻辑在 guest/README.md 和 guest/Containerfile 中构建容器基于 Alpine 引导出一个锁死版本的 Arch Linux ARM 根文件系统pacstrap-docker随后在特权 ARM64 容器内执行guest/build-container.sh完成全部组装供应链全部锁定guest/spec.json 是镜像与运行时的权威契约——Omarchy 上游 commit、Arch Linux ARM 包仓库 commit、Hyprland 源码 tarball 的 SHA-256……都是被评审的固定输入而不是浮动的构建依赖guest/packages.txt 描述期望的包事务guest/packages.lock.json 则锁死完整解析结果包与源码缓存驻留在项目专属的 Docker 卷里重复构建不会从零开始源码检出按锁定的 Omarchy commit 分别缓存升级发布时旧检出也会被保留复用Hyprland 是唯一源码级打补丁的包它从校验过的上游源码重编译应用 guest/patches/hyprland/rounded-border-coverage.patch 这个圆角边框 VM 图形兼容补丁然后固定在镜像的本地仓库中。构建器会自动按 CPU 与内存预算限制 Hyprland 的并行编译任务数16 GiB 的 Mac 用 3 核 / 约 5.8 GiB 的 Docker 配置成功构建过这是实测参考而非硬性下限。想手动指定 Hyprland 编译任务数可以这样跑OMARCHY_GUEST_BUILD_JOBS2 make guest镜像输出的默认壁纸也值得一看——它被预置在新用户的主目录里作为 Tokyo Night 主题的首选背景定义在 guest/README.md 的 factory 说明中四、构建打补丁的 QEMUmake runtimemake runtime负责在macos/.build/qemu-gpu-runtime下构建一份完整、校验和锁定的 Apple Silicon 运行时闭包详见 macos/README.md从源码构建QEMU 11.1.1第一个自带 Apple hypervisor 内 GICv3 的版本、打过补丁的libslirpNAT 网络修复和VirGL 1.3.0图形命令重放全部补丁都在 macos/patches/ 目录内——例如 HVF 空闲内存回收、Cocoa 显示与按键捕获、USB 精确总线匹配等 20 余个补丁文件构建前先应用再编译运行时被隔离到 macOS 15.0 目标拒绝任何抬高最低系统版本或强导入新 API 的依赖确保在新 macOS 上构建也不会悄悄改变部署目标。如果重建时需要给其他应用留内存可以用OMARCHY_RUNTIME_BUILD_JOBS2 make runtime限制 Ninja 的并行度。五、一键构建并启动make build run前两步完成后剩下就是组装 App 本体并跑起来make build run这一步做了三件事构建缓存介入每个组件构建都会对有效输入做哈希并记录到.build/state/只有输入变化才真正重建缓存永远不会收养它没有观测到成功输入的旧产物。想强制全量重建时用make build FORCE1开发签名本地构建使用独立的Try Omarchy Dev隐私标识bundle ID 为dev.tryomarchy.native.development自动挑选已安装的 Apple Development 证书没有则回退到 Developer ID Application这样辅助功能、相机、麦克风权限授予一次后就能跨重建保留。多张证书并存时可用DEVELOPMENT_SIGN_IDENTITYApple Development: 你的名字 (TEAMID)显式指定启动生成的 App 位于dist/app.noindex/Try Omarchy.app.noindex防止它在 Spotlight 中与已安装版本混淆make run会先确保镜像、运行时、App 三者都是最新的再打开它。首次构建需要下载锁定版本的源码、组装数 GB 的镜像并编译 QEMU耗时较长属正常现象之后只有变更的组件会被重建。六、测试与日常维护命令速查命令作用make test运行完整的 Swift 原生测试 客户机契约测试 QEMU shell 集成测试调试时可make test TEST_JOBS1串行执行make run-ephemeral一次性临时 VM 模式退出后不保留任何磁盘变更make reset打开经确认的流程把 VM 恢复到当前出厂镜像make clean删除全部构建产物、缓存和项目专属的 Docker 构建镜像不碰你的持久 VMmake clean-all在make clean基础上再删除 VM 磁盘与 App 状态需交互式输入clean-all确认make help查看全部组件级构建、重置与清理命令客户机侧的测试套件入口是 guest/test其中包含针对补丁覆盖率的 test_rounded_border_coverage.py、构建脚本回归测试等Swift 侧测试位于 macos/Tests/涵盖 HVF 内存回收、Cocoa 输入、网络、端口转发等契约。七、总结从零到启动的最小路径回顾整条流水线最小路径只有四步make doctor # 1. 环境预检 make guest # 2. Docker 复现 ARM64 镜像可跳过build 会自动执行 make runtime # 3. 构建打补丁的 QEMU 运行时可跳过build 会自动执行 make build run # 4. 组装 App 并启动如果你改动了构建输入某个锁定版本、补丁或依赖请记得同步更新对应的校验代码与校验和然后运行相关组件构建——这是 CONTRIBUTING.md 对贡献者的核心要求。想进一步了解信任边界、存储布局与更新渠道设计可以阅读 docs/architecture.md 和发布清单 docs/releasing.md。祝构建顺利【免费下载链接】try-omarchyRun Omarchy on MacOS without any setup.项目地址: https://gitcode.com/gh_mirrors/tr/try-omarchy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考