想看结论直接拉到最下面
安装Go:
从官网下载安装的dmg文件。一路next。
配置Go环境变量:
目前配置:
/etc/profile 下:
~/.zshrc 下:
执行Go之后的结果:
查询google,并没有什么靠谱的答案。
Trackback原因:
go这个命令可以使用,说明了在/usr/local/bin中可能有这个命令。
偶然间,使用which go, 发现居然显示了go的路径在/usr/local/bin。
这和讲道理本来应该的情况是不一样的。本来应该在/usr/local/go/bin/go。
于是查看/usr/local/bin,发现里面存在go, gofmt , godoc 三个存在在/usr/local/go/bin里面,默认应该使用的是path.d/go这个文件去设置环境变量。
“ll”一下,结果发现,go、godoc、gofmt居然是从Cellar里面link过来的。Cellar这个文件夹里面,大部分的东西都是homebrew装的。于是大胆推测,以前应该是使用过homebrew安装过Go。所以这次再使用官方的安装包安装Go可能会起冲突。
于是brew uninstall go ,再按照https://golang.google.cn/doc/install#uninstall 上面说的,卸载之前使用dmg安装的go程序(1. 删除/usr/local/go : 2. 删除/etc/path.d/go)。最后再重新使用go官方包安装。
yeap!
结论
- Go安装,启动后出现segmentation fault的原因应该是brew install 的旧版本和包安装的新版本起冲突。
- 解决的方法是:
- 删除以前homebrew安装的go:brew uninstall go。
- 删除现在用包安装的go:按照https://golang.google.cn/doc/install#uninstall 上去做。
- 删除/usr/local/go
- 删除/etc/path.d/go
- 重新使用golang官网上下载的包进行安装。