| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> M1芯片的MacBook安装docker -> 正文阅读 |
|
[开发工具]M1芯片的MacBook安装docker |
1 安装homebrewhomebrew是mac平台下的一个包管理软件系统,类似于ubuntu的apt。可以通过命令安装很多现成的二进制包。安装brew需要从github下载一些资源,但是一般国内的网络速度太慢,很难安装成功,我们可以更换为国内源进行安装以加快安装速度。 homebrew清华软件源地址?https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/ 安装过程通过在终端中输入命令完成,打开终端,按照如下步骤安装:
安装完成后,在终端继续输入下面的命令设置环境变量:
输入下面的命令下载和安装homebrew:
安装完成之后,还需要在终端手动执行一些配置命令:
完成全部安装之后,可以通过
之后可以通过 2 配置终端如果是进行一些程序开发的工作,很大程度会使用到终端,可以通过修改一些配置来美化终端的界面 大部分都是使用 oh my zhs + iterm2 的组合,oh-my-zsh是 zsh 的一个插件,可以基于zsh提供一些修改和功能,iterm2是一个第三方的终端,应该也是提供了不少新的功能,但是以我目前的使用需求来看,原生的终端也是可以满足当前的需求的,所以暂时就基于原生终端去做一些配置。 原生的终端也带了一些列的主题,我选择了一个带有一些透明度的主题(Silver Aerogel),看起来还可以,就暂时使用这个了,默认的字体太小了,虽然视力还可以,但是看起来太难受,修改了一下字体的大小。 一般在ubuntu的话我会修改系统的字体,但是现在在mac下默认字体也还行,就不修改了。 3 安装docker 编译linux内核我安装docker是因为要做一些嵌入式开发的工作,大家知道现在apple m1芯片已经是arm64架构的芯片,正好我也在进行一些arm64架构平台的软件开发工作,本来以为使用mac自带的clang工具链也可以进行一些基本的开发,但是发现苹果自己的工具链是使用mach-o的可执行文件格式,而不是我们很常见的elf。 总结一下就是:
所以mac自带的工具链和我们平时嵌入式开发使用的还是有一些不兼容,很难在原生平台进行开发,所以此时需要通过虚拟机去创建一个linux的开发环境进行开发。比较常用的linux系统就是ubuntu了,不过由于M1芯片是arm64架构,所以目前创建的虚拟机也将会使用atm64版本 与我们之前接触到的ubuntu可能略有不同,但是对于我来说,还是比较合适的。 docker是一个很出名的容器,具体是什么东西还不是很清楚,最近几天的接触 又有了一些了解。 首先docker是和linux有很大的关联或者关系,我们启动的各种docker都是以一个linux系统作为基地,进而添加了各种lib、各种软件包构成的。docker可以通过一个叫做 dockerfile的文件描述一个docker镜像,我们可以基于该文件去创建一个容器。 目前在M1芯片上,docker也是采用了套娃技术来支持。docker m1版本是基于qemu- system-aarch64 去运行的,通过qemu仿真器去执行一个arm64的Linux环境,来执行docker的软件,然后在docker里面再去运行linux系统。不过根据我的尝试,编译等效率还是可以的。 所以我们这里就是使用docker作为一个linux虚拟机来使用,完成一些编译工作。 docker安装比较简单,到官网选择对应的版本下载即可,我们主要介绍一下在mac m1芯片平台基于docker + ubuntu进行linux内核的编译。 3.1 构建一个docker镜像首先创建一个docker镜像描述文件 Dockerfile:
上述的文件描述,将会在基于ubuntu 21.10 版本去构建一个可以编译linux内核的软件环境,主要做了下面几项工作:
执行build命令,基于上面的描述文件创建镜像:
创建完成之后,可以通过 接下来基于该去运行一个docker容器:
在docker与宿主机之间拷贝文件:
退出docker之后恢复:
编译一个linux内核用时,虽然是在虚拟机下面 但是这个性能还是十分强大。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/14 15:02:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |