使用 Rosetta 建立 Ubuntu x86 开发环境
版权声明:本文为博主原创文章,转载请注明出处。
前言
尽管换了 M1 设备也有一年多了,但平时仍然依赖于 x86 平台进行开发,为此不得不单独部署一套 x86 的开发环境在 intel PC 上。
随着 macOS 更新到了 Ventura (13.0.1),以及 UTM 4.0 的更新,现已可以在 Linux 环境下启用 Rosetta 对 x86(含amd64) 应用进行加速。
使用 Rosetta 加速后,在构建项目的速度上甚至几年前的 i7 8700 打得有来有回,比较离谱。
UTM 4.0 更新
支持了以下几个主要的新特性。
- 无头(headless)模式启动
- 将虚拟机的所有显示设备移除,打开虚拟机时便不会弹窗
- 可通过串口设备或通过网络进行访问(太合适服务器系统了
- VirtioFS
- 可用于文件共享,挂载宿主机目录进行访问
- 相较于 cifs, sshfs 等方案,正确了保留原有的 rwx 权限,并可正常执行程序
- Rosetta 加速
- macOS 13 以上可用,通过 VirtioFS 挂载
基于这些特性,第一时间联想到的就是替代 x86 开发环境的可行性;实际上只要 Rosetta 性能上没问题,其它都是小事。
部署流程
- 需要将 macOS 更新到 Ventura 以上的版本,再进行后续操作。
安装 UTM
建议使用非 Beta 版本
下载地址
安装 Ubuntu
建议使用 LTS 版本
下载地址
下载完成后打开 UTM,按照以下流程创建虚拟机:
- 选中 Linux 预配置
- 使用 Apple 虚拟化
- Enable Rosetta (x86_64 Emulation)
- 选择下载好的光盘镜像
- 设置硬件参数
- 配置文件共享
创建虚拟机以后,正常流程安装系统便可。
配置 Rosetta 运行环境
基础流程可参照官方手册。(不看也行,本文会进行复读
- 创建 Rosetta 挂载点并完成挂载
1 2 |
$ sudo mkdir /media/rosetta $ sudo mount -t virtiofs rosetta /media/rosetta |
- 配置开机挂载(将内容写入
/etc/fstab
)
1 |
rosetta /media/rosetta virtiofs ro,nofail 0 0 |
- 开启 Rosetta 支持
1 2 3 4 5 |
$ sudo apt install binfmt-support $ sudo /usr/sbin/update-binfmts --install rosetta /media/rosetta/rosetta \--magic "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00" \--mask "\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \--credentials yes --preserve no --fix-binary yes |
到此 Ubuntu ARM 便可以运行 x86_64 程序了。
挂载文件共享
官方手册对于 VirtioFS 的挂载藏的挺深,但其实操作起来很简单。
- 创建挂载点并完成挂载
1 2 |
$ sudo mkdir /media/share $ sudo mount -t virtiofs share /media/share |
在 UTM 配置的共享目录,会统一存放在 share 目录下。
- 配置开机挂载(将内容写入
/etc/fstab
)
1 |
share /media/share virtiofs rw,nofail 0 0 |
配置 Ubuntu x86 开发环境
目前虽然可以使用 Ubuntu ARM 来运行 x86 程序,但是与实际的生产环境差异太大了,也并不适合作为开发环境使用。
- Q: 那么有没有一种方案,可以使用完整的 Ubuntu x86 及其配套设施呢?
- A: 参考本人年前所写的文章,使用 Chroot 部署一套 Ubuntu 子系统便可。
后话
尝试了使用 Jetbrains Gateway 进行 x86 开发,体验尚佳。
由于需求不是在上面运行 IDE,而仅仅是在上面完成项目编译,所以最后还是卸载了。
但总的来说,能跑起来 IDE,或许这套方案兼容性还算不错?
使用 Rosetta 建立 Ubuntu x86 开发环境相关推荐
- ubuntu java开发环境搭建(jdk+tomcat+eclipse)
一.jdk的安装配置. 1.下载jdk. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...
- 建立openstack quantum开发环境 .
建立openstack quantum开发环境 作者:张华 发表于:2012-4-6 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog ...
- 建立Qt+VS2010开发环境
简单建立Qt+VS2010开发环境 多天不关注Qt了,发现竟然又被digia收购了,也许是好事,digia计划将Qt应用到Android.iOS及Windows8平台上. 简单介绍下digia(来着网 ...
- 全球第一免费开源ERP Odoo Ubuntu最佳开发环境独家首发分享...
起源 近年来随着国内的互联网经济的快速腾飞,诞生了很多开源软件创造的市场价值以及企业价值神话,特别是对于企业ERP领域,一直以来都是高昂的国内外产品充实,国内的中小成长型企业越来越需要一套好看又能打, ...
- 全球第一免费开源ERP Odoo Ubuntu最佳开发环境独家首发分享
起源 近年来随着国内的互联网经济的快速腾飞,诞生了很多开源软件创造的市场价值以及企业价值神话,特别是对于企业ERP领域,一直以来都是高昂的国内外产品充实,国内的中小成长型企业越来越需要一套好看又能打, ...
- ubuntu java 开发环境_详解ubuntu搭建Java开发环境
没有用Java写过程序,做为一个Java新手,在写第一个Hello,world程序之前,先在Ubuntu中搭建Java开发环境. 本文结构: 一.JDK安装 二.MyEclipse安装 三.Hello ...
- ubuntu android开发环境配置、jdk、Git、虚拟机、微信、xmind、搜狗等常用软件安装
最近使用ubuntu系统进行开发工作,使用起来还是有些生涩.习惯使用windows的突然换ubuntu还是有个适应阶段.这里把这几天开发环境的配置,和常用软件的安装查的资料做了记录,也算是方便以后.先 ...
- ubuntu安装开发环境:VSCode、golang、git、redis、sublime及go插件、boost库、thrift等
1.VSCode 方法一: 依次输入如下命令 1.sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make 2.sudo apt-get updat ...
- 简述java开发环境的建立过程_java开发环境的完整搭建过程
卸载JDK 1.删除java的安装目录 2.删除JAVA_home 3.删除path下关于java的目录 4.java -version 安装JDK 1.百度搜索JDK8,找到下载地址 2.同意协议 ...
最新文章
- 快速精确的体素GICP三维点云配准算法
- 自定义Checkbox让复选框居中对于RadioButton同样适用
- 夺命雷公狗---DEDECMS----26dedecms面包屑导航的实现
- windows下hadoop的单机伪分布式部署(3)
- 结构体中.和-的用法
- cvs有机添加剂检测_美国ECI CVS 电镀添加剂分析仪QL-10EX
- mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)
- 一起学习C语言:初步进入编程世界(一)
- gcc编译器_2020好用的C++编译器有哪些?这几款值得下载
- UGUI的Button和Toggle
- 深度学习新星 | 图卷积神经网络(GCN)有多强大?
- vue项目中通过图片url下载图片
- 2019 Namesilo 购买域名 解析域名 图文教程
- 麒麟操作系统产业化项目落户天津
- Java程序员“金三银四“就一定要出去面试吗?
- 笔记本闪屏是怎么回事呢?笔记本闪屏三个原因介绍
- mac 10.13 安装 java7_下载安装或升级 macOS High Sierra 10.13 系统教程
- Java web接入google身份验证器二次验证
- 如何去除图片上的文字(PS使用教程)
- 切入点表达式的写法详解
热门文章
- MATLAB中的清除命令
- Web3 的通行证——DID 带来数字身份革命
- kali RDP远程桌面之xfce4
- uni-app框架看这五款组件库就够了
- 用QT制作图片转换成ICO格式 领卓教育
- 【亲测】回合制手游魔力宝贝【法兰城的回忆】最新整理Linux手工服务端+视频教程+GM授权后台
- linux中httpd错误页面图片,自定义404页面
- Windows10如何滑动关机(与以前不一样的方式)
- Oracle EBS Interface/API(18) - 标准采购订单、PBA和一揽子发放等等审批API
- WinRAR 6.01 官方中文正式版