迁移到 go module

文章目录

  • 下载安装 golang
  • .bashrc 设置
  • 开始新的工作
  • 其它

如果一直工作于 < golang1.12, 然后现在工作于 >= golang1.12, 并且使用 go module
进行管理, 那么需要做一些工作.

下载安装 golang

wget https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.14.4.linux-amd64.tar.gz
rm go1.14.4.linux-amd64.tar.gz

.bashrc 设置

# 原来应当设置过 GOROOT, 不需要重新设置.
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

# 不再需要设置 GOPATH
# export GOPATH=$HOME/go

# 这里把来 $GOAPTH/bin/* 拷贝到此, 比如 godoc
export PATH=$PATH:/home/dzf/go/bin

# 运行 go get 时可以正确从 github 下载包
export GOPROXY=https://goproxy.io

# 启用 go module
export GO111MODULE=on

$ 初始新的开发环境

假如原来的工作目录为 $HOME/go1.10, 新的工作目录 (缺省) 为 $HOME/go.
由于网络的特殊原因, 若完全从 0 开始初始化新的开发环境会比较麻烦, 比如编译
golang.org/x/tools/ 下的 godoc 工具等.
可以从原来的开发环境拷贝一些现成的包到新的开发环境, 加速完善新的开发环境.

mkdir -p $HOME/go/{pkg, bin}
mkdir $HOME/go/pkg/mod

# 将原来使用的包移到新的环境
mv $HOME/go1.10/src/SOME_PACKAGES $HOME/go/pkg/mod

# 把原来已经编译成功的可执行文件移到新的环境
mv $HOME/go1.10/bin/* $HOME/go/bin

开始新的工作

任意位置建立一个工程文件夹, 比如 $HOME/demo:

cd $HOME/demo

# 初始化为 module
go mod init demo

然后编辑一个新的 go 源文件 main.go:

package main

import "fmt"

func main() {
	fmt.Printf("hello, world\n")
}

编译并执行:

go build main.go
./main

# 输出 "hello, world"

其它

go module 的工作原理可参见 https://www.jianshu.com/p/07ffc5827b26.

你可能感兴趣的:(golang)