一、安装
官网官网安装指导文档源代码下载安装包下载
wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz
sudo mkdir -p /usr/local/go
sudo tar -C /usr/local/ -xzf go1.14.linux-amd64.tar.gz
设置环境变量
#设置go安装目录
export GOROOT="/usr/local/go"
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
#设置go项目的工作区间
export GOPATH="/home/ubuntu/wsq/gowork"
export PATH=$PATH:$GOPATH/bin
验证:
ubuntu@VM-0-9-ubuntu:~/wsq/gowork$ go version
go version go1.14 linux/amd64
代理添加:
#解决golang.org/x/… 系列包无法下载的问题
export GOPROXY=https://goproxy.io
#解决go get下载无反应
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
# 设置不走 proxy 的私有仓库,多个用逗号相隔(可选)
go env -w GOPRIVATE=*.corp.example.com
# 设置不走 proxy 的私有组织(可选)
go env -w GOPRIVATE=example.com/org_name
参考:https://goproxy.io/zh/
这里参考:https://blog.csdn.net/qq_36234688/article/details/108967859
二、代码示例
首先在go工作目录创建文件夹
ubuntu@VM-0-9-ubuntu:~/wsq/gowork$ pwd
/home/ubuntu/wsq/gowork
ubuntu@VM-0-9-ubuntu:~/wsq/gowork$ mkdir src pkg bin
ubuntu@VM-0-9-ubuntu:~/wsq/gowork$ ls
bin pkg src
ubuntu@VM-0-9-ubuntu:~/wsq/gowork$ cd src/
ubuntu@VM-0-9-ubuntu:~/wsq/gowork/src$ vim hello.go
ubuntu@VM-0-9-ubuntu:~/wsq/gowork/src$ go build hello.go
ubuntu@VM-0-9-ubuntu:~/wsq/gowork/src$ ls
hello hello.go
ubuntu@VM-0-9-ubuntu:~/wsq/gowork/src$ ./hello
hello, world
这里我使用的时候普通用户的go环境,导致go install的时候报错,后面再看下。
测试一个go并发代码:
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 5; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("world")
say("hello")
}
三、golang 使用 protobuf
参考:
protoc 命令来自于 https://github.com/google/protobuf,可以产生序列化和反序列化的代码,无go相关代码。
protoc-gen-go插件则来自于https://github.com/golang/protobuf/protoc-gen-go, 可以产生go相关代码, 除上述序列化和反序列化代码之外, 还增加了一些通信公共库
而grpc又来源于https://github.com/grpc/grpc-go, protoc和protoc-gen-go这两个工具都不在其中,所以玩grpc的时候,少不了protoc和protoc-gen-go
因此需要首先下载安装protoc和protoc-gen-go
go get -u github.com/golang/protobuf/protoc-gen-go
如果成功,会在GOPATH/bin下生成protoc-gen-go
~ echo $GOBIN
/usr/local/go/bin
➜ ~ ls /usr/local/go/bin/protoc-gen-go
/usr/local/go/bin/protoc-gen-go
验证代码:https://www.cnblogs.com/jkko123/p/7161843.html
三、补充环境变量知识
Ubuntu保存环境变量的几个文件
/etc/profile
在用户登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
/etc /environment
在用户登录时,操作系统使用的第二个文件, 系统在读取用户个人的profile前,设置环境文件的环境变量。
~/.profile
在用户登录时,用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,会设置一些环境变量,执行用户的.bashrc文件。
/etc/bashrc
为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
~/.bashrc
该文件包含专用于用户的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取