Macos M1上Golang开发遇到的坑

背景:最近换了电脑,从windows换成MacBook M1开发,我的开发语言是Go,实际使用过程中过程中遇到了很多Macos M1芯片和软件不兼容的坑

1.安装第三方软件提示文件已损坏无法打开

如果你要安装非苹果商店或者非官方网站的第三方软件大概率会碰到如下问题下载的软件提示文件已损坏无法打开

首先新版本Macos禁止了第三方软件安装和使用,需要我们通过命令修改配置,具体步骤参考如下

修复方法 参考:Mac应用程序无法打开或文件损坏的解决方法 - 知乎

2.Go程序启动报错

Go语言程序启动提示:go:linkname must refer to declared function or variable

解决方案:

// 执行下面命令 go get -u golang.org/x/sys

这个是一个Mac M1上碰到的问题,原因是GoPath目录下的包版本问题更新就可以解决了

3.Mac上安装DockerDestop并且配置镜像加速

我们在开发中经常需要使用到Docker,Mac上使用Docker最简单快捷的方式就是安装DockerDeskTop,由于官网上没有直接提供M1芯片的DockerDeskTop版本需要我们去到网站下下载,具体参考如下:

Mac 的M1芯片如何安装Docker Desktop

参考:m1芯片macOS安装docker - 知乎

配置镜像加速:

Docker Engine 增加如下配置(注意json格式问题):

"registry-mirrors": [ "http://hub-mirror.c.163.com" ]

然后执行DockerInfo查看镜像源是否已经更换成功

4.Mac上安装GO多版本切换软件

我们在开发过程中经常需要用到GoSDK,但是经常碰到如果我想要切换版本的问题,由于我们的项目同时存在go1.13和go1.18版本所以需要一个能够非常便捷的go版本切换工具,以下是我实测非常好用的go版本切换工具,具体使用可以参考以下文档

参考:GitHub - 835301967/g: Golang Version Manager

5.Mac的ARM架构无法拉取最新Mysql5.7镜像问题

我在开发中需要用到Mysql镜像去部署Mysql数据库,但是如果你直接通过Docker pull msyql就会提示你:no matching manifest for linux/arm64/v8 in the manifest list entries,这个是由于DockerHub上没有直接的Mysql镜像版本,需要我们指定镜像版本才能够完成拉取镜像操作,具体操作可以参考以下文档

参考:ARM64v8(树莓派、OrangePi)Docker拉取mysql5.7镜像_程序员冰零的博客-CSDN博客

7.Macos上Fiddler软件无法使用Fiddler classic版本了如何解决

作为windows上非常好用的软件FIddler Classic 抓包软件,但是切换到Macos后安装却提示:Fiddler Classic does not Support Your OS,所以我们我们可以选择Charles,目前使用来说体验非常不错,由于4.61版本对于M1版本的兼容性不是很好,实测使用过程会有很多不兼容的bug,所以强烈推荐大家使用5.0b8版本,这个版本目前完美兼容Mac M1使用体验非常好,具体下载可以到官网Beta Releases • Charles Web Debugging Proxy下载然后一路安装,具体设置可以参考网上教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值