M1 MAC 开发环境配置

1. 编译 proto 文件

该项目使用 protobuf 作为序列化协议框架,但该框架在 java 环境下暂不兼容使用 m1 芯片的操作系统。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
protobuf {
    protoc {
        // for apple m1, please add protoc_platform=osx-x86_64 in $HOME/.gradle/gradle.properties
        if (project.hasProperty('protoc_platform')) {
                    artifact = "com.google.protobuf:protoc:3.13.0:${protoc_platform}"
        } else {
                    artifact = "com.google.protobuf:protoc:3.13.0"
        }
    }
}

解决方案为在m1芯片的开发环境中手动指定所需依赖的平台标签。

使用根目录配置的方式能够避免在 Git 版本管理中对其他环境开发者的影响。

1
2
// $HOME/.gradle/gradle.properties
protoc_platform=osx-x86_64

2. 安装 docker desktop

目前docker没有实现对 m1 芯片的完全支持,但提供了 docker desktop preview 版本的支持。可以从该链接安装 https://docs.docker.com/docker-for-mac/apple-m1/ 暂未支持的功能也在该页面进行了列举。

3. 安装 mysql

Mysql 官方镜像暂未支持 m1 环境的 arm 标签,但得益于 m1 的兼容性,我们可以使用 --platform 参数安装 x86 版的镜像,并且能够正常运行

1
2
3
4
docker run --name mysql -d \
-p 3306:3306 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
--platform linux/x86_64 mysql

4. 安装 homebrew

参考少数派的文章,需要注意路径区分。