golang安装
1、下载go包
- wget https://golang.google.cn/dl/go1.16.linux-amd64.tar.gz
- wget https://golang.google.cn/dl/go1.19.8.linux-amd64.tar.gz 推荐用这个为主
2、解压文件到 /www/server
【重要】如果之前已经安装过go的版本,先清空下go下面src,不然可能会报一些previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:16:24的错误
- rm -rf /opt/go
解压go包
- tar -zxf go1.19.8.linux-amd64.tar.gz -C /opt/
3、配置环境变量,vim指令编辑 /etc/profile
- vim /etc/profile
4、在/etc/profile文件末尾添加以下配置,输入 :wq保存
- export GOROOT=/opt/go
export GOBIN=$GOROOT/bin
export GOPKG=$GOROOT/pkg/tool/linux_amd64
export GOARCH=amd64
export GOOS=linux
export GOPATH=/mnt/projects/GO/chatgpt- export GO111MODULE=on
export PATH=$PATH:$GOBIN:$GOPKG
5、使换将变量配置生效,并查看golang的版本
- source /etc/profile
- go version
6、设置代理环境变量,再拉去golang.org的时候就不需要墙了。注意GO1.13及之后支持direct的写法
- go env -w GOPROXY=https://goproxy.cn,direct
设置完后用 go env 查看,window和liunx都一样的。
7、关于报错 missing go.sum entry; to add it的处理方式,有三种处理方式:
7.1 加环境变量,本地开发推荐用这种方式,会自动拉引用和生成go.sum
- go env -w “GOFLAGS”=“-mod=mod”
7.2 在go build的时候添加参数,如 go build -mod=mod
7.3 在go.mod同一层级中执行 go mod tidy
8、安装完毕写一个helloworld测试
切换到gopath目录,创建一个hello.go
- cd /www/wwwroot/gotest.test.com
- vim hello.go
复制粘贴helloworld代码, :wq保存即可
- package main
import “fmt”
func main() {
fmt.Printf(“Hello, world!\n”)
}
9、运行
- go run hello.go
目录结构说明
$GOPATH/├── src/ # 源代码(你的 + 第三方的)│ ├── github.com/user/project/│ └── golang.org/x/net/├── pkg/ # 编译后的包对象(.a 文件,加速编译)│ └── linux_amd64/└── bin/ # go install 生成的可执行文件└── dlv└── golint
当时的硬性规定
你的项目代码必须放在 $GOPATH/src/你的域名/项目名/ 下,否则 import 找不到。
go get github.com/xxx/yyy 会把代码直接下载到 $GOPATH/src/github.com/xxx/yyy,没有版本锁定,所有项目共享同一份代码——这就是著名的“依赖地狱”来源。
import “github.com/xxx/yyy” 时,编译器只会在 GOROOT/src 和 GOPATH/src 里找。
