这几天算是正式入职啦,入职之后每个人发了一个macbook air apple m1芯片的,拿到手之后马上就开始装环境啦,但是在装完docker 拉去mysql镜像的时候,突然发现事情不对劲…

熟悉是apple m1芯片和Intel芯片的cpu架构有点不一样,Intel是我们基本上是我们的window操作系统的芯片采用的是amd架构的,而apple m1芯片采用的是arm架构的。这是两种完全不一样的架构,有兴趣的小伙伴可以去看一下计算机组成原理,有关于这两种cpu架构的区别

现在的问题是我一直使用的是amd64架构的操作系统,现在换了一个arm64的操作系统,难免会有些许bug(虽然我感觉是有一顿的bug)这边记录一下,以方便有碰到类似问题的小伙伴们!

1. mysql不支持arm64架构

在使用docker pull mysql的时候,发现报错啦

% docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
no matching manifest for linux/arm64/v8 in the manifest list entries

上网查了一下,说是现在主流的mysql没有支持arm架构的。于是问了一下公司里面同样适用macbook air apple m1芯片的前辈们,他们说改用mariadb,这个是mysql的一个分支,说是做mysql的那一批人出来做的一个东西,这个东西据说是完全兼容mysql,有兴趣的可以去看一下dockerhub上面的相关讲解

2. Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Unsupported runtime (93)

防止有部分的小伙伴无法访问原连接,这里简单翻译一下:

% sudo xcode-select --install #首先要安装xcode命令行工具

# 检查有没有配置文件,类似于~/.bash_profile、~/.zshrc、~/.profile 或 ~/.bashrc
# 如果没有请创建一个先 touch ~/.profile
% curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

# 基于nvm安装node
% nvm install v15 # 这条命令会耗费些许的时间,请耐心等待

% node -v # 有输出说明安装成功

% nvm cache clear # 清楚一下缓存

3. 安装virtualenv 支持 python2.7

  • 在 virtualenv 20.10.0的版本中,如果使用virtualenv -p python2.7 mppython命令会报错 No virtualenv implementation for PythonInfo。查找了一波资料发现是版本太高。
  • 在 virtualenv 20.4.2的版本中,如果使用virtualenv -p python2.7 mppython命令虽然可以正常创建python2的虚拟环境,但是当你启用虚拟环境的时候,不管使用pip还是python命令,都会出现以下信息[1] 29116 killed pip or [1] 29141 killed python
    还是因为架构的问题。
    Steps:
  1. Disable SIP: reboot MacBook in Recover Mode. Open Utilities > Terminal enter csrutil disable. ref: Disabling and Enabling System Integrity Protection
  2. Run SHELL as x86_64 mode: enter arch -x86_64 $SHELL in Terminal.
  3. Execute python/pip successfully

后续将持续更新macbook air apple m1芯片的踩坑过程,小伙伴们有关类似的坑欢迎留言分享!