Ubuntu install the latest version (1.12) Golang and use go mod

 

wget https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz

sudo tar -zxvf go1.12.4.linux-amd64.tar.gz -C /opt

Check whether the installation was successful

cd /opt/go/bin

./go version

go version go1.12.4 linux/amd64

Set Environment Variables

vi /etc/profile

export GOROOT=/opt/go
export GOPATH=/home/ubuntu/go
export GOPROXY=https://goproxy.io
export GOARCH=amd64
export GOOS=linux export GOTOOLS=$GOROOT/pkg/tool export PATH=$PATH:$GOROOT/bin:$GOPATH/bin source /etc/profile

Which, GOPROXY can solve golang.org/x / ... issue series package can not be downloaded.

HelloWorld write files, test runtime environment.

package main
import "fmt"
func main(){ fmt.Println("hello,world!") }
go run hello.go
go build hello.go 

Create a file go.mod

go mod init hello

Implement a simple http service with Gin

import (
    "gopkg.in/gin-gonic/gin.v1"
    "net/http"
)

func main(){ router := gin.Default() router.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello World") }) router.Run(":8000") }

Direct compiler implementation 

go run hello

We can see the package references are automatically downloaded

go: finding github.com/gin-contrib/sse latest
go: finding github.com/gin-gonic/gin/render latest
go: finding github.com/gin-gonic/gin/binding latest
go: finding github.com/gin-gonic/gin/json latest
go: finding golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223
go: downloading golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223
go: finding gopkg.in/go-playground/validator.v8 v8.18.2
go: finding github.com/ugorji/go/codec latest
go: finding github.com/golang/protobuf/proto latest
go: finding gopkg.in/yaml.v2 v2.2.2
go: downloading gopkg.in/go-playground/validator.v8 v8.18.2
go: downloading gopkg.in/yaml.v2 v2.2.2
go: finding github.com/ugorji/go v1.1.4
go: finding github.com/golang/protobuf v1.3.1
go: downloading github.com/ugorji/go v1.1.4
go: downloading github.com/golang/protobuf v1.3.1
go: extracting gopkg.in/go-playground/validator.v8 v8.18.2
go: extracting gopkg.in/yaml.v2 v2.2.2
go: extracting github.com/golang/protobuf v1.3.1
go: extracting github.com/ugorji/go v1.1.4
go: extracting golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223
go: finding gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405

HTTP service starts properly, it can be accessed through a browser.

[GIN-debug] [WARNING] Now Gin requires Go 1.6 or later and Go 1.7 will be required soon.

[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] GET / --> main.main.func1 (3 handlers) [GIN-debug] Listening and serving HTTP on :8000 

 

 

Guess you like

Origin www.cnblogs.com/meetrice/p/11546871.html