- yum 安装go
yum install golang -y - 配置gopath(可自行设置目录)
cd /home/gopath - 包安装
- 下载
wget https://studygolang.com/dl/golang/go1.15.linux-amd64.tar.gz - 解压
sudo tar -C /usr/local -xzf go1.15.linux-amd64.tar.gz
- 下载
- 打开配置文件
vim /etc/profile - 添加以下内容
export GOPATH=/home/gopath/
gopath是自己创建的工作路径,各种依赖包会自动下载到home/gopath/pkg下。
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin - 使设置生效
source /etc/profile
- 启用Go Modules 功能
- go env -w GO111MODULE=on
- 或者在配置文件添加export GO111MODULE=on
- 查看go环境变量中GO111MODULE选项go env
官方文档
- 简介
go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用,默认是auto。
go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等。
go module可以舍弃 go get 命令(如果要指定包的版本或更新包可使用go get)。
go module可以不用将代码放置在GOPATH/src下了 - 开启module
| GO111MODULE | auto | on | off |
|---|---|---|---|
| 1.13+:项目根目录有 go.mod | 启用 | 启用 | 不启用 |
- GO PROXY
因go的网络问题, 可以配置GOPROXY 国内代理地址,
go env -w GOPROXY=https://goproxy.io,direct- 也可以换成
- 阿里云go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
- 百度 go env -w GOPROXY=https://goproxy.baidu.com
- 使用 goproxy.cn 设置详见 https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md
- 初始化MODULE(项目中还没有go.mod文件)
- 进入项目文件夹
cd xxx/xxx/test/ - 初始化 MODULE(test为项目名)
go mod init test
我们会发现在项目根目录会出现一个 go.mod 文件
注意,此时初始化的 go.mod 文件只标识了项目名和go的版本。
- 进入项目文件夹
- 检测依赖
go mod tidy
检测该文件夹目录下所有引入的依赖,写入 go.mod 文件中,go.mod 文件有所变动,但是此时依赖还是没有下载的。 - 下载依赖
go mod download
注意:下载不是使用 go get,如果没有设置 GOPROXY 为国内镜像,这步百分百会停住。
此时会将依赖全部下载至 GOPATH 下,会在根目录下生成 go.sum 文件, 该文件是依赖的详细依赖,
但是项目是没有放到 GOPATH 下的,那么下载到 GOPATH 下是无用的,照样找不到这些包,需要导入。 - 导入依赖
go mod vendor
执行此命令,会将刚才下载至 GOPATH 下的依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下
此时就可以使用这些依赖了 - 依赖更新
go mod tidy
go mod download
go mod vendor
这里的更新不是指版本的更新,而是指引入新依赖
依赖更新请从检测依赖部分一直执行即可,即 - 新增依赖
直接项目中 import 需要新加的包,之后更新依赖即可 - 在协作中使用 GOMODULE
在项目管理中,如使用git,需要将 vendor 文件夹放入白名单,不然项目中带上包体积会很大
git设置白名单方式为在git托管的项目根目录新建 .gitignore 文件
设置忽略即可.但是 go.mod 和 go.sum 不要忽略
其他人clone项目后在本地进行依赖更新即可 - GOMODULE常用命令
go mod init # 初始化go.mod
go mod tidy # 更新依赖文件
go mod download # 下载依赖文件
go mod vendor # 将依赖转移至本地的vendor文件
go mod edit # 手动修改依赖文件
go mod graph # 打印依赖图
go mod verify # 校验依赖
新建main.go
新建views文件夹,在views中新建hello.html
main.go
package main
import "github.com/kataras/iris"
func main() {
app := iris.New()
app.RegisterView(iris.HTML("./views", ".html"))
app.Get("/", func(ctx iris.Context) {
ctx.ViewData("message", "Hello world!")
ctx.View("hello.html")
})
app.Run(iris.Addr(":8080"))
}
hello.html
Hello Page
{{.message}}
运行,在浏览器输入http://localhost:8080/,得到运行结果。
生成证书开启HTTPScd $GOROOT/src/crypto/tls/
go run generate_cert.go --host localhost目录下会生成keyFile和crtFile 两个文件。



