M1芯片MacBook安装Go包报mkdir只读文件系统错误,求解决方案
M1芯片Mac安装dlv及Go相关包解决方案
错误根因说明
你遇到的go install github.com/go-delve/delve/cmd/dlv: mkdir /Desktop: read-only file system报错和系统完整性保护(SIP)无关,核心是Go环境变量配置错误:GOPATH或GOBIN参数被误设置到了系统根目录/下,而MacOS的系统根目录默认是只读挂载的,没有写入权限,完全不需要禁用SIP即可解决。
修复步骤
- 第一步:检查当前Go环境配置
终端执行命令查看环境参数:
正常配置下两个路径都应该位于你的用户目录内,格式为go env | grep -E 'GOPATH|GOBIN'/Users/你的用户名/go相关路径,如果输出结果中存在直接指向/Desktop或其他根目录下路径的配置,即可确认是参数错误问题。 - 第二步:修正环境变量配置
M1 Mac默认使用zsh作为终端shell,执行命令编辑配置文件:
如果你使用的是bash,编辑vim ~/.zshrc~/.bash_profile文件,在文件末尾添加以下三行配置:
保存退出后执行命令让配置立即生效:export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN# zsh用户执行 source ~/.zshrc # bash用户执行 source ~/.bash_profile - 第三步:重新安装dlv
不需要提前手动克隆go-delve仓库,直接全局执行安装命令即可:
安装完成后执行go install github.com/go-delve/delve/cmd/dlv@latestdlv version验证,正常输出版本信息即为安装成功。
额外调试权限配置
如果后续使用dlv调试Go代码时遇到权限报错,不需要关闭SIP,只需执行一次以下命令开启开发者工具权限即可:
sudo DevToolsSecurity -enable
输入用户密码确认后即可正常使用调试功能。
其他Go包安装通用规则
所有Go官方工具、第三方包的安装都遵循同一逻辑:只要确保GOPATH、GOBIN配置在用户可写的目录下,都可以直接通过go install命令安装,无需修改系统级权限,更不需要禁用SIP。
内容的提问来源于stack exchange,提问作者SRAVANI GARAPATI
相关产品推荐
相关产品推荐

