支持 mac、iPhone、iPad,iPad终于可以写code了!

为何要用虚拟机?
对于现在开发人员来说,客户需求、应用程序甚至到第三方,会被局限在特定的硬件、OS(操作系统)。
或许正式环境可以用$解决,但大多数的情形,应该也是只有一台硬件跟自己想办法测试,那用虚拟机去模拟测试也是一个不错的选择。
Mac 上使用虚拟机,有以下选择:
- Parallels Desktop,付费、Windows支持度好
- Virtual Box,免费、Apple Silicon还在开发版本(2023/05/29)
- UTM,免费、本身支持Apple Silicon,连手持装置都可以
为何选择UTM?
主要原因,电脑为macbook pro M1,在尝试使用Virtaul Box过程中,有发生几次错误与闪退,以及开发上要三台ubuntu,练习kubenetes的基本安装,最终选择使用UTM。
当然还是要依照自己的资源与需求挑选适合的,甚至走GCP、AWS、Azure等云端都是可以的选项,但,就是想先从免费的试看看。
安装UTM
- UTM Mac 官网,直接点击Download下载即可。
- Mac App Store,付费,与直接下载的功能一样,会自动更新外,也是支持团队喝杯咖啡。
下载完成后,直接点击并将UTM icon 拖到Applications文件夹中:

在应用程序中开启,因为是外部下载的App,系统会再去认是否开启:

完成之后会看到UTM的接口,代表安装完成!

安装Ubuntu
UTM在官方文件中,有多种系统的安装教程,点击 “浏览 UTM 资源库”,可以看到可使用的列表,这边选择 Ubuntu 20.04 (arm64)-> Guide,就可以看到教程。

这边会发现,资源库跟教程的Ubuntu版号不同,依照教程的最新版号就可以了。
Ubuntu是每半年发布一次版本(一年两次),所以22.04就是2022年上半的版本,下一个版本就会是22.10,以此类推,如果出现其他版本号,也可以注意看是否是官方的。
另外会看到大概每两年有一版会有LTS版本(长期支持版本),支持会比一般版本在久一点,通常是为了企业能更稳定的使用。

接续教程文件,这边选择Ubuntu Server for ARM版本下载ios文件,不选择DeskTop版本,因为需求为虚拟服务器主机,没有特别要GUI接口操作,尽量降低资源为主。

下载完成后,在UTM中点 “建立新虚拟机”,另外我们电脑与下载的ubuntu版本是ARM版本,可以选择“虚拟化”较有完整的性能。

选择Linux

选择“浏览”找到刚刚下载的iso文件,加入后选下一步

再来调整这台模拟主机的资源,包含RAM、CPU,如果电脑硬件规格较低,可以将RAM调整到2G、CPU两颗就好

硬盘空间建议至少20GB,先已安装完成开启就好

共享资料功能后续有需求,在参考教程开启就好,现阶段可以先下一步

最后定义这台主机的名称,按下储存就好

看到以下画面,代表机器的设置文件完成,但还需要调整网络设置,点下右上角的选项,调整网络设置。

将网络模式切换到 “桥接模式”并按下储存,这样你的虚拟机才能通过自己的主机网络,连至外部网络,避免后续要更新或安装时,无法连接至网络。

按下执行,会开始读取iso文件,出现画面后选择Install Ubuntu Server

语系选择依照需求调整,按下Enter

键盘设置依照需求调整,按下Enter

维持预设就好,按下Enter

网络会自动抓取,按下Enter

Configure proxy默认,按下Enter

Configure Ubuntu archive mirror默认,按下Enter

空间分割设置,以后安装时也可以自定义空间分区,按下Enter

空间设置调整,可以不更动,按下Enter

设置用户与主机名称,可以依照自己的喜好设置,按下Enter

略过升级,按下Enter

是否安装SSH,看个人需求,可以之后SSH登入操作虚拟机,按下Enter

额外安装套件,也是看需求选择,移动到Done,按下Enter进入安装

安装过程看资源大小与网络快慢,时间不一定让他跑就可以了

安装完成后,选择 Reboot Now 重启虚拟机

但这时候会发现一直卡在黑画面很久,不是安装失败,记得刚刚设置虚拟机有预设挂载iso文件,所以重启的时候会读取iso档卡住,这时候直接点击虚拟机关闭,并清除iso文件后,重新启动

重启后会看到登录用户界面,输入刚刚自行设置的用户名,在输入密码后,可以成功登录Ubuntu,也代表虚拟机已安装完成!

后记
当初花费一天才安装好一台,同时也要了解虚拟设备设置与不同操作系统安装的眉眉角角,一步一步也采了一些坑,补了一些知识。
而UTM操作直觉、方便、快速,但与Virtual Box是差不多的,可以选自己硬件兼容性较好的就可以。
另外官网也有提到,目前还不支持GPU的虚拟化,就算装了Windows的虚拟机,跑游戏部分应该会遇到很多问题。