Ubuntu 20.04 搭建go开发环境

5,143 阅读2分钟

1 环境

本文使用Ubuntu20.04+goland,Ubuntu18.04与Ubuntu19.04亦可作参考。

2 golang安装

首先,在官网下载相应安装包。 解压缩到自己想放的文件夹:

tar -zxvf go1.12.1.linux-amd64.tar.gz -C /opt

进入/opt设置权限:

sudo chmod -R 0777 go

3 环境变量设置

主要设置GOROOT和GOPATH两个环境变量,其中GOPATH表工作目录,但实际可以随意设置,因为后续开发里大多使用go mod。我把GOPATH创建在主目录中。

使用sudo gedit /etc/profile打开设置文件,并做修改:

#for golang
export GOROOT=/opt/go #GOROOT是系统上安装Go软件包的位置。
export GOPATH=/home/wucp/GOPATH #GOPATH是工作目录的位置。
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

使设置马上生效:

. etc/profile

查看配置: 后面还有,不截全部了。

3.1 创建helloworld

mkdir $GOPATH/src/github.com/Winszheng/hello -p

创建hello.go文件:

package main

import "fmt"

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

终端运行,第一个go程序完成:

4 安装必要的工具和插件

安装git客户端,这个能学go的应该都已经安装了。

4.1 解决go get速度很慢的问题

对初学者来说,go get速度很慢是常见问题。参考七牛云解决,之后下载源代码到本地:

# 创建文件夹
mkdir $GOPATH/src/golang.org/x/
# 下载源码
go get -d github.com/golang/tools
# copy 
cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf

注意go get下载的包默认放在$GOPATH/src中。

4.2 安装工具包:

go install golang.org/x/tools/go/buildutil

4.3 安装运行 hello world

go install github.com/github-user/hello

运行:

5 安装与运行go tour

go get github.com/Go-zh/tour/gotour
gotour

6 第一个包与测试

创建包目录:

mkdir $GOPATH/src/github.com/user/stringutil

创建reverse.go文件:

// stringutil 包含有用于处理字符串的工具函数。
package stringutil

// Reverse 将其实参字符串以符文为单位左右反转。
func Reverse(s string) string {
	r := []rune(s)
	for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
		r[i], r[j] = r[j], r[i]
	}
	return string(r)
}

用go build测试包的编译:

go build

修改hello.go文件:

package main

import (
	"fmt"

	"github.com/Winszheng/stringutil"
)

func main() {
	fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}

然后go install安装hello程序,stringutil 包也会被自动安装。

重新运行此程序:

至此,需要区分go run,go install,go build之间的关系

7 区分go run,go install,go build

7.1 概念

go run:go run 编译并直接运行程序,它会产生一个临时文件(但不会在$GOPATH/bin生成.exe 文件),直接在命令行输出程序执行结果,方便用户调试。

go build:用于测试编译包,在项目目录下生成可执行文件(有main包)。

go install:主要用来生成库和工具。一是编译包文件(无main包),将编译后的包文件放到 pkg 目录下($GOPATH/pkg)。二是编译生成可执行文件(有main包),将可执行文件放到 bin 目录($GOPATH/bin)。

7.2 区别

  • go build在当前目录生成可执行文件,不生成包文件
  • go install在$GOPATH/bin生成可执行文件或在pkg目录生成包文件。
  • 在源码目录下执行go install和go build都可以省略路径,go run一定要跟文件名。go程序安装好后,可以通过GOPATH/bin/hello运行,如果已经将\GOPATH/bin添加到PATH中,直接输入二进制文件名hello即可。

7.3 注意

  • go 工具只有在发生错误时才会打印输出,因此若命令没有产生输出, 就表明执行成功了。

8 文章参考

如何使用go编程 这次文章的目的是了解golang整个项目构造思路。