mac下执行go mod init无效的解决办法

在mac下使用go.mod去管理应用包的时候,执行go mod init 应用名时报错Permission denied,go mod默认使用的是/usr/local/go,而这个目录是没有权限进行操作的,就算是使用管理员模式也无法成功。
原因是mac用户在升级系统之后,电脑启用了SIP(System Integrity Protection)保护机制,增加了rootless机制,导致即使在root权限下依然无法修改文件,在必要时候为了能够修改下面的文件,我们只能关闭该保护机制。我选择的是关闭该保护机制。步骤如下:

1)重启,过程中按住 command+R,进入保护模式

2)打开terminal终端,输入

csrutil disable

显示Successfully就表示设置成功。

3)再次重启,即可对 usr/bin 目录下文件进行修改

此时执行go mod init 应用名

PS:如果要恢复保护机制,重新进入保护模式,输入

csrutil enable

版权声明:本文为weixin_42689212原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。