avatar
@bangbang93

写在将开发环境迁移至Linux一个月后

1/20/2022, 11:04:01 AM

从毕业进有赞之后,有赞发了一台13寸的MBP作为工作机,我就开始用MacOS作为开发环境了。后续发的机器性能实在不够用,就在16款touchbar MBP发布后,买了15款顶配的MBP。MacOS开箱即用的桌面环境和靠谱的命令行工具链确实非常吸引人,当时还没有WSL,Windows底下各种魔法的bug着实有些让人头秃。
即使离开有赞后,MBP依旧是我的主力开发环境,家里的Windows基本只用来打游戏了,虽然保留了开发环境,但是除了BMCL以外,都是临时用用。
随后更新了16寸MBP,因为旧MBP退役时,CPU和内存比较吃紧,所以16寸MBP直接拉满了i9 CPU和64G内存。
直到Apple发布了M1,我开始考虑开发环境和服务器CPU异构所带来的问题。
首当其冲的是Docker,没有Rosetta后,意味着MBP只能执行arm版本的Docker runtime。考虑到Docker的build过程是要执行代码的,也就无法实现交叉编译。从而意味着无法从本地编译一个Docker镜像推送到registry然后直接由服务器拉取,必须借助外部机器。虽然我的大部分项目都有配合的CI使用,所以虽然麻烦了点,但是也不至于不能用。不过此时我已经开始有迁移Linux的想法了。
最终压死骆驼的最后一根稻草是新的MBP,居然有刘海。Apple不知道是哪根筋吃错药了,手机开始搞刘海,反正我不用iPhone,但是带出一堆跟风刘海和挖孔屏的邪气。现在MBP也搞刘海,实在是受不了。
巧的是此时JetBrains推出了Gateway,经过几天的试用之后我发现它能解决我换台式机最后一个问题————远程访问开发环境。虽然对比本地IDE还有些功能不能用,但是已经能够满足大部分需求,作为救急已经绰绰有余了。
于是最终决定之后放弃MBP,投奔Linux。

在此前我曾经有一年多的时间在虚拟机中使用过Fedora作为开发环境,当时主要是看中Fedora和CentOS相近的环境。但是随着CentOS7已经接近EOL,而CentOS转向了滚动更新,服务器预计打算放弃CentOS而转向Debian,所以这一点优势也已荡然无存。
随着服务器转向Debian,国产的Deepin也曾经进入我的考虑行列,首先Deepin的Wine对很多国产软件做了强化,能够解决我使用QQ和公司使用企业微信的需求,但是Deepin在我家里的台式机上无法引导,连Grub都进不去,所以只好暂时放弃。
然后想到了很多人经常吹的Arch Linux,但是安装难度令人望而却步,太DIY了,可能未来对linux桌面环境更熟悉一点再试试吧。
随即又想到了openSUSE,但是QQ之类的似乎得自己折腾,简单尝试之后也放弃折腾了。
这时我想到了LTT的安东尼提到过的Manjaro,基于Arch Linux,所以又重新看了Arch Linux和Manjaro的wiki,了解到了AUR,发现它似乎能解决我的大部分应用需求。
随后经过大约1个月的虚拟机测试,我从众多发行版中决定使用Manjaro。

主机就不多说了,反正CPU和内存直接拉满,i9-12900K和128G内存。本来想着12900K的单核性能比家里的5900X强,想对调一下来着,结果想起来该死的显卡问题,家里要打游戏,肯定不能集显,公司写Bug,只要能亮机,但是4年前800块买了960,现在还得800块买回来,感觉太傻比,于是作罢。

目前已经使用了一个多月,整体上还是非常满意的,比MacOS+MBP令我满意的有一下几点:

  • 毕竟是目前单核性能最强的CPU,WebStorm的响应和开启速度都快了很多。
  • Docker不是虚拟机,可以让dockerd服务一直在后台运行,不用担心资源消耗
  • 128G内存可以直接关掉Swap,再也不会有MacOS放着30G空闲内存不用,非要整出10GSwap的问题了
  • 蓝牙音箱偶尔断连,并且必须kill bluetoothd audiod才能连上的问题在Linux上没有出现过类似的,蓝牙一直很稳定。
  • 待机和唤醒时有很微弱的概率六国,linux下别说对应的Kernel Panic了,目前我连X崩溃都还没遇到过

相对的,目前也有以下问题让我觉得不如MacOS,甚至不如Windows+WSL2:

  • QQ不稳定,企业微信甚至在上次更新后干脆起不来了,于是我还得跑一个VMWare Player用Windows11跑企业微信
  • 同样的编码,蓝牙音质明显不如MacOS(AAC),不过这个问题在上次更新后好了,甚至能够支持LDAC反倒相当于成为了优点
  • OneNote没有对应的桌面客户端,只有electron封网页或者干脆用网页
  • Wayland下fcitx无法使用
  • Chrome拖拽下载偶尔失灵,不方便收藏色图

至于其他间歇性的小毛病,反正MacOS和Windows也一样不省心,各个都半斤八两,也就不互相比较了。

image.png