当前位置:首页>Linux>在 Mac 上跑 Linux:我们折腾了一圈,最后换了个姿势

在 Mac 上跑 Linux:我们折腾了一圈,最后换了个姿势

  • 2026-08-22 10:01:22
在 Mac 上跑 Linux:我们折腾了一圈,最后换了个姿势

今天介绍个工具:OrbStack。

我们一直觉得,Mac 做开发挺好。

不是“能不能”的问题,是“舒不舒服”的问题。

写代码,跑服务,调接口,连云端,起个数据库,打一套脚手架,基本都顺。真正让人烦的,往往不是开发本身,而是那种——只差一点就复现不了的时刻。

比如:

线上是 Ubuntu。本地是 macOS。看起来都能跑,细节却总差一口气。

glibc、openssl、systemd、权限、目录结构、daemon、日志链路……还有那句让人叹气的:“线上 amd64,你本地 M 系列。”

很多坑不在代码里,在系统里。

所以我们时不时就需要做一件事:

在本地搞一台“像线上一样”的 Linux。(对大厂的朋友来说,这不是问题,资源多的很)用来复现、验证、回归。解决“它只在线上坏”的那种问题。

然后,常见的两条路就出来了。


第一条路:容器。看起来现代,实际很容易把人磨没脾气

容器这东西,确实好用。

快。标准化。团队沟通成本低。compose 一写,MySQL/Redis/Kafka 一起起。

但问题在于:我们很多时候要的不是“跑一个服务”,而是“跑一台服务器”。

容器更像“进程的盒子”,不是“机器的生活”。

于是就会出现三个熟悉的痛点。

第一,镜像会变成主成本。我们想复刻环境与行为,结果先在“怎么拉镜像、怎么加速、怎么稳定”上耗时间。网络条件一复杂,镜像这关就能把人劝退。

第二,容器不是机器。我们要的是 systemd、daemon、权限、目录、日志链路这些“机器行为”。容器当然能硬搞,但总会觉得差一点:“我这是在模拟线上,还是在模拟一个被裁剪过的线上?”

第三,资源占用体感很重。尤其是 Docker Desktop 在 macOS 上的体验:开着像在供养它,关了又不一定愿意把内存还回来。

这条路能走。但走久了会发现:我们不是在做开发,我们是在给工具打补丁。


第二条路:虚拟机 / 裸机。更像服务器,但也更像运维

于是有人说:那就上 VM 呗。

VMware、Parallels,开一台 Linux,什么都真实。这话没错。

但 VM 的代价也很真实:

分配磁盘、CPU、内存;处理网络、共享目录、端口;临时复现一个问题,搞得像在建设基础设施。

更“狠”的做法是:找台旧笔记本刷 Linux。这已经不是复现问题了,这是“开分公司”。 以前手机各种系统盘,现在都没有了,装个系统都觉得费劲。

所以我们一直想要的是一种东西:

既像服务器,又不要那么重。能随手起,随手用,用完就放下。

然后 OrbStack 就很自然地出现在视野里。


OrbStack:它不跟我们讲情怀,它就想把这事做轻

OrbStack 的定位很清楚:

  • 容器照样跑(很多人把它当 Docker Desktop 的替代)。
  • 但更关键的是:它提供 Linux machines ——一种更像 WSL2 的方式,在 Mac 上启动一台轻量 Linux。

注意这个差别:

我们过去是在“拼环境”:先搞镜像,再搞容器,再搞各种边界行为。

现在更像是“先有一台机器”:起一台 Linux,然后按线上方式装包、改配置、启服务、跑测试。

这一下,味道就对了。随随便便模拟个CentOS或者Ubuntu到MAC上。


Orb对我们更省事:不是更强,是更顺

我们用着明显顺的地方,通常是这些:

1)复刻线上更像复刻机器,而不是复刻镜像

很多时候我们要的真不是某个镜像。我们要的是一台 Linux:

apt 装包;改配置;跑服务;看日志;把那次线上行为再走一遍。

Linux machines 的思路就是:把这台“本地服务器”变得很轻。不需要为了复现而先做一堆镜像工程。

2)资源占用更像“按需使用”,而不是“开着就得供着”

我们最怕的不是慢。是那种“我只是想临时跑一下,结果把整台 Mac 变成它的附属品”。

OrbStack 的思路更像子系统:需要它时它出现,不用时它别太抢戏。动态内存、可回收的占用,这种东西日常体感非常明显:风扇、续航、系统流畅度都会变。

3)Apple Silicon 下 amd64 的现实问题,更容易处理

线上还是 amd64 的情况太普遍了。在 M 系列上做本地复现,架构差异会反复出现。

OrbStack 的 Linux machines 支持通过 Rosetta 跑 x86_64/amd64。这就让“本地像线上”少了很多心理负担。


Orb和Docker怎么选?我们一般就按这个逻辑来

也不需要上升到信仰。

很简单:

  • 只起标准组件(MySQL/Redis/Kafka):容器最省脑子。
  • 要模拟服务器行为(系统包、systemd/daemon、权限目录、线上差异、架构兼容):Linux machine 更顺。
  • 对资源占用敏感:优先选更“按需”的那一套。

工具是服务人的。不是反过来。


最后

开发里最浪费时间的,常常不是写代码。是“为了复现环境而折腾环境”。

过去要么在容器的边界里绕,要么在虚拟机的成本里扛。

OrbStack 的价值不是什么“更强”。它就是把这件事做得更像正常人:

在 Mac 上轻量拥有一台 Linux,把复现、验证、回归变成日常动作。

起它。用它。然后回到我们的开发节奏里去。

就这么简单。

最新文章

随机文章