由于众所周知的原因,golang的官网无法正常访问,而依赖于 *.golang.org 域名的一系列功能也经常无法正常使用
这里将以前遇到的坑总结一下,并给出一份最简单的解决方案
去golang官网 https://go.dev 或者 下载页面镜像 https://studygolang.com/dl 下载最新的golang安装包
当前最新golang版本为 1.21.5
如果你使用windows,可以下载 go1.21.5.windows-amd64.msi
如果你使用Linux,可以选择 go1.21.5.linux-amd64.tar.gz
如果你使用windows,可以运行 go1.21.5.windows-amd64.msi,不要忘记把安装地址添加进 PATH 目录
如果你使用Linux,只需要使用如下命令将 go1.21.5.linux-amd64.tar.gz 解压即可
如果你之前安装过golang,记得解压前先把原有的删掉!!!
> sudo tar -C /usr/local -xzf go*linux-amd64.tar.gz
请注意,这条命令可能需要root权限,请使用 sudo 运行
接下来设置 PATH 路径
> echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.profile && source ~/.profile
默认情况下 go 会把第三方库,下载到 /home/$USER/go 目录下
可以通过修改 GOPATH 环境变量来修改此目录。
不论你使用什么操作系统,在将安装目录正确添加进 PATH 路径之后,可以使用一下命令来验证安装
> go version
go version go1.20.4 linux/amd64
如果显示 go version go1.20.4 linux/amd64 表明安装成功
此时,你已经可以打开编辑器开始写golang代码,并且使用 go build 命令来进行编译
不过在通常编码时,我们都需要依赖于大量第三方优秀的库,而安装这些库又由于 前情提要 中所讲的那样,面临一些困难。
在这里可以使用代理来避免这一问题,我选择使用 goproxy.io
> echo "export GOPROXY=https://proxy.golang.com.cn,direct" >> ~/.profile && source ~/.profile
如果你的某些库在私有repo中(不存储pkg.go.dev) 可以使用下面的环境变量来避免golang从pkg.go.dev去寻找这个库
> export GOPRIVATE=git.mycompany.com,github.com/my/private
作为一款编辑器界的新星,VS Code 毫无疑问已经打响了自己的名声, 本人也是自很久以前就一直是 VS Code 忠实用户。所以接下来介绍一下如何构建基于VS Code的golang环境。
首先通过正常方法安装VS Code, 并在左侧扩展栏中搜索golang,选择并安装golang扩展。
安装扩展之后,扩展可能会提醒你缺少一些必备的组件,例如:
The "gopls" command is not available. Run "go install -v golang.org/x/tools/gopls@latest" to install.
请点击 Install All,如果安装失败(因为VSC在安装这些时,可能不会走代理)可以尝试手动运行:
go install -v golang.org/x/tools/gopls@latest
go install -v github.com/cweill/gotests/gotests@latest
go install -v github.com/haya14busa/goplay/cmd/goplay@latest
go install -v honnef.co/go/tools/cmd/staticcheck@latest
go install -v github.com/fatih/gomodifytags@latest
go install -v github.com/josharian/impl@latest
go install -v golang.org/x/tools/cmd/goimports@latest
go install -v github.com/go-delve/delve/cmd/dlv@latest
具体需要安装那些依赖可以参考这里 vscode-go
这些命令就会走代理了
并且在每次golang升级后,一般都会提醒你重新安装一遍
同时这里推荐使用 gopls 来作为扩展的后端(目前gopls已经被当做默认选项了)
执行完毕后,可以通过命令来查看:
> ls ~/go/bin
dlv goimports gomodifytags goplay gopls gotests impl staticcheck
可以发现,这些第三方的代码被go get 下载之后,并且编译为二进制程序放置在 GOPATH/bin 目录下,而 VS Code 的 golang 扩展会在编写代码的过程中使用这些第三方程序。
最后昨天git clone this-repo.git by ssh 的时候,发现一直出错,报 kex: this connection is closed by remote
debug半天后发现是因为 steam-tools 里面加速了 github ,导致ssh失败
最后在steam-tools的加速列表里把 github 去掉就行