Tart:面向 Apple Silicon 的 macOS / Linux 虚拟化工具集 #
Tart 是什么? #
Tart 是一款专为 Apple Silicon 打造的虚拟化工具集,用于构建、运行和管理 macOS 与 Linux 虚拟机。
它直接调用 Apple 与首代 M1 芯片同步设计的原生 Virtualization.Framework,因此在虚拟机启动速度、资源占用和整体流畅度上都有出色表现,不会像传统模拟方案那样带来明显的性能损耗。对开发者而言,Tart 最大的价值在于把虚拟机变成了"像 Docker 容器一样好用的东西":镜像可以推送到任意 OCI 兼容的容器仓库,一条命令即可拉取、克隆和运行;同时它与 GitHub Actions、GitLab Runner、Buildkite、Packer 等主流自动化系统无缝衔接,非常适合驱动 CI/CD 流水线、搭建可复现的本地开发环境,以及在没有实体设备的情况下测试设备管理系统。官网数据显示,Tart 累计安装量已超过 25,000 次,被 Codemagic、Expo、Snowflake 等团队的工程师用于生产环境。
Tart 有哪些亮点特色? #
- 原生性能:Tart 使用 Apple 的 Virtualization.Framework,该框架与首代 M1 芯片一同设计,软硬件深度整合带来顺滑的虚拟机表现;Codemagic 的 CTO 表示,相比 Anka,Tart 在启动新虚拟机时取得了明显的性能改善。
- 虚拟机镜像当作容器镜像管理:Tart 与 OCI 兼容的容器注册表集成,可以像使用 Docker 镜像一样
push/pull虚拟机镜像,让 VM 的分发、版本化和复用变得非常自然。 - 无缝融入现有自动化流程:Tart 支持多种持续集成系统,包括按需启动的 GitHub Actions Runner 服务;官方称只需改动一行配置,借助 Cirrus Runners 就能把 CI/CD 成本最多降低至原来的三十分之一。
- Orchard 编排实现规模化运行:Tart 工具集内置 Orchard Orchestration,可在 Apple Silicon 主机集群上大规模运行和管理虚拟机;单个 Orchard Cluster 通过简洁的 REST API 管理成千上万台虚拟机,Orchard CLI 还能像访问本地虚拟机一样访问远程虚拟机。
- 开箱即用的丰富镜像库:官方在 GHCR 上提供 macOS 26 (Tahoe)、15 (Sequoia)、14 (Sonoma)、13 (Ventura)、12 (Monterey) 的 vanilla / base / xcode 多档镜像,以及 Ubuntu、Debian、Fedora 的 Linux 镜像,所有镜像统一使用
admin/admin凭据,登录 GUI、控制台与 SSH 均可用。 - 轻量单二进制交付:Orchard 以单个 Go 二进制分发,controller 模式运行于 Linux/macOS 主机,worker 模式运行于 macOS 主机,使用高速的 BadgerDB 键值存储持久化数据,不依赖任何外部数据库或运行时。
- 灵活的虚拟机配置与目录挂载:通过
tart set可调整 CPU、内存、磁盘等参数;通过--dir参数可把宿主机目录挂载进虚拟机,甚至支持只读挂载,方便在 guest 中直接访问本地源码。 - 源码可见的授权模式与持续维护:Tart 以 Fair Source 许可在 GitHub 上公开源码,个人电脑上的安装与 100 CPU 核以内的服务器安装免费使用;Expo 的基础设施团队就提到,Cirrus Labs 持续的维护与支持让他们更有信心,同时还能在需要时阅读源码理解底层抽象。

免费下载 Tart #
以下为官方提供的安装包,点击链接即可下载。
| 文件名 | 描述 | 大小 | 下载 |
|---|---|---|---|
| tart.tar.gz | 官方发布归档包(macOS / Apple Silicon) | 21.9 MB | 夸克网盘 |
提示:也可以直接从 GitHub Releases 获取最新版本:
curl -LO https://github.com/cirruslabs/tart/releases/latest/download/tart.tar.gz
Tart 如何使用? #
Tart 是命令行工具,整体使用体验与 Docker 非常接近。以下是最基础的流程:
- 安装并确认环境:在搭载 Apple Silicon 的 Mac 上安装 Tart(见下方安装章节),宿主机系统需为 macOS 13.0 (Ventura) 或更高版本。
- 克隆一份官方镜像:例如
tart clone ghcr.io/cirruslabs/macos-tahoe-base:latest tahoe-base。首次执行会下载体积约 25 GB 的镜像;如果只想快速体验,也可以选择体积更小的 Linux 镜像。 - 启动虚拟机:执行
tart run tahoe-base,虚拟机窗口会直接打开。官方镜像的默认用户名与密码均为admin。 - 按需调整配置:用
tart set命令修改资源,例如tart set ubuntu --disk-size 50把 Linux 镜像的磁盘扩容到 50 GB。Tart 虚拟机默认使用 2 个 CPU、4 GB 内存和 1024x768 的显示分辨率。 - 访问与控制虚拟机:如果 guest 已开启 SSH,可以用
ssh admin@$(tart ip tahoe-base)直接登录;也可以在命令前加上sshpass -p admin在脚本中非交互地执行命令,例如... admin@$(tart ip tahoe-base) "uname -a"。 - 挂载宿主机目录:运行
tart run --dir=project:~/src/project vm,guest 中即可在/Volumes/My Shared Files/project(macOS)看到该目录;在路径后追加ro可启用只读挂载,且每个挂载名必须唯一。 - 与容器仓库互通镜像:完成配置后,可以把本地虚拟机镜像推送到 OCI 兼容的注册表,或从远端拉取镜像,团队协作时分发环境就与分发容器镜像一样简单。
Tart 的常见问题? #
Tart 支持哪些主机平台? Tart 面向 Apple Silicon 的 Mac,宿主机需要运行 macOS 13.0 (Ventura) 或更新版本。Linux 虚拟机同样运行在 macOS 宿主机上;官方还提供了 Vetu,可在 arm64 的 Linux 主机上原生运行这些 Linux 镜像。目前不支持 Intel Mac 与 Windows 主机。
Tart 是免费的吗? Tart 采用 Fair Source 许可,在个人电脑上安装使用不受限制,服务器安装在使用 100 CPU 核以内也免费。当组织的服务器安装超过 100 CPU 核时,需要购买 Gold 许可($12,000/年);超过 500 CPU 核需要 Platinum 许可($36,000/年);超过 3000 CPU 核则需要定制的 Diamond 许可($12/核/年)。所有付费层级均包含优先功能开发与紧急问题 SLA 支持。
什么是"服务器安装"? 按照官方定义,安装在没有连接物理显示器的设备上即为服务器安装。例如插着 HDMI 假负载的 Mac Mini 被视为服务器,而放在桌面上并连接了物理显示器的 Mac Mini 则被视为个人电脑。
为什么必须通过 tart.app/Contents/MacOS/tart 这个路径运行二进制?
手动安装解压后,需要使用 ./tart.app/Contents/MacOS/tart 而不是直接运行裸二进制。官方说明这样做是为了让 macOS 使用 tart.app/Contents/embedded.provisionprofile 中的描述文件,从而授予 Tart 所需的高权限能力。
官方镜像的默认登录凭据是什么?
所有官方 macOS 与 Linux 镜像都使用用户名 admin、密码 admin,该凭据同时适用于 GUI 登录、Linux 控制台和 SSH。出于安全考虑,在生产环境中使用前建议自行修改。
能不能在多台 Apple Silicon 主机上统一管理虚拟机? 可以。Tart 工具集包含 Orchard Orchestration,它通过一个 controller 加多个 worker 的方式把 Apple Silicon 主机组织成集群,对外暴露简单的 REST API,可管理数千台虚拟机,并支持通过 Orchard CLI 像操作本地虚拟机一样访问远程虚拟机。
Tart 与 Kubernetes / Nomad 有什么区别? 官方明确表示没有选择集成 Kubernetes 或 Nomad,原因是这类系统的目标用户和运维经验与 Apple Silicon 虚拟化的实际使用场景不完全匹配(虚拟机规模是数千台而非数百万台)。因此 Orchard 被设计为一个简单、有主见的编排器,内置对 SSH/VNC 访问和脚本执行的一等支持。
Tart 如何安装? #
Tart 目前只在 Apple Silicon 的 Mac 上运行,推荐使用 Homebrew 安装。
macOS(Apple Silicon) #
方式一:Homebrew 安装(推荐)
-
打开"终端"应用。
-
执行安装命令:
brew install cirruslabs/cli/tart -
验证安装:
tart --version(若命令可正常输出版本号即安装成功)。
方式二:从发布归档手动安装
-
下载最新归档包:
curl -LO https://github.com/cirruslabs/tart/releases/latest/download/tart.tar.gz -
解压:
tar -xzvf tart.tar.gz -
使用解压出来的
tart.app内的可执行文件运行命令,例如:./tart.app/Contents/MacOS/tart clone ghcr.io/cirruslabs/macos-tahoe-base:latest tahoe-base ./tart.app/Contents/MacOS/tart run tahoe-base -
注意事项:必须使用
./tart.app/Contents/MacOS/tart这一路径,而不是解压出的裸二进制,否则 macOS 无法读取embedded.provisionprofile,Tart 将缺少所需的提升权限。
安装前的环境检查 #
- 主机必须为 Apple Silicon(M 系列芯片)的 Mac。
- 系统版本需为 macOS 13.0 (Ventura) 或更新版本。
- 首次克隆官方 macOS 镜像会下载约 25 GB 数据,请预留充足的磁盘空间与网络带宽。
- Linux 镜像的最小磁盘为 20 GB,克隆后可通过
tart set <vm> --disk-size 50扩容。
Tart 如何卸载? #
官网文档并未提供专门的卸载章节,以下为基于其安装方式整理的通用做法。
方式一:通过 Homebrew 卸载 #
-
打开"终端"。
-
执行卸载命令:
brew uninstall tart -
如需同时清理安装源与缓存,可执行:
brew cleanup
方式二:手动安装的卸载 #
- 删除 Tart 应用包。若按官方指引解压到了某个目录,直接将整个
tart.app拖入废纸篓,或在终端中执行rm -rf /path/to/tart.app。 - 如果曾把二进制复制到
/usr/local/bin等目录,请一并删除对应文件。
清理本地虚拟机与缓存 #
- Tart 会把克隆下来的虚拟机镜像保存在本地存储中,卸载程序本身不会删除这些体积可观的镜像,需要手动清理,否则磁盘空间不会被释放。
- 具体缓存目录位置以本机实际配置为准,建议在删除前先用
tart list确认当前存在哪些虚拟机,避免误删仍需使用的环境。 - 若曾在脚本或 CI 配置中引用 Tart,请同步移除相关命令行调用,以免流水线报错。
