Установка GoLang на Ubuntu14-17, Debian 8


-----------Install (for go 1.X verison):------------
sudo apt-get install gcc libc6-dev mercurial subversion
mkdir ~/golang;
extract goinstall file in this directory and rename its to go1.X name of directory.
wget https://dl.google.com/go/go1.10.8.linux-amd64.tar.gz
sha256: d8626fb6f9a3ab397d88c483b576be41fa81eefcec2fd18562c87626dbb3c39e
wget https://dl.google.com/go/go1.10.8.linux-386.tar.gz
sha256: 10202da0b7f2a0f2c2ec4dd65375584dd829ce88ccc58e5fe1fa1352e69fecaf
wget https://storage.googleapis.com/golang/go1.10.8.linux-386.tar.gz
sha256:
Set up two environment variables:
vim .bashrc
#-----GO lang env settings may be in .bashrc:----------
# wget https://golang.org/dl/go1.10.8.tar.gz
export GOROOT=$HOME/golang/go1.10.8;
export GOPATH=$HOME/Go
export GOBIN=$GOROOT/bin
export GOTMPDIR="/tmp"
export GOARCH=386;
export GOOS=linux;
export PATH=$PATH:$GOROOT/bin;
export PATH=$PATH:$GOPATH/bin;
## github fig for golang env:
XDG_CONFIG_HOME=$HOME/.config
XDG_DATA_HOME=$HOME/.local/share
-------for amd64----------------
### Golang PATH (may be in .bashrc):----
export GOROOT=$HOME/golang/go1.10.8;
export GOPATH=$HOME/Go
export GOBIN=$GOROOT/bin
export GOTMPDIR="/tmp"
export GOARCH=amd64;
export GOOS=linux;
export PATH=$PATH:$GOROOT/bin;
export PATH=$PATH:$GOPATH/bin;
## github fig for golang env:
XDG_CONFIG_HOME=$HOME/.config
XDG_DATA_HOME=$HOME/.local/share
==============================Old version:--------------
# wget https://dl.google.com/go/go1.9.7.linux-386.tar.gz (sha256: c689fdb0b4f4530e48b44a3e591e53660fcbc97c3757ff9c3028adadabcf8378)
export GOROOT=$HOME/golang/go1.9.7;
export GOPATH=$HOME/Go
export GOARCH=386;
export GOOS=linux;
export PATH=$PATH:$GOROOT/bin;
export PATH=$PATH:$GOPATH/bin;
#-------------------------------------------------------
You’ll want to activate these variables. You can close and reopen your shell, or you can run:
source $HOME/.profile .
go version
go get -v golang.org/x/tools/cmd/godoc
Убедиться, что путь прописанный в GOPATH отображается в переменных Go по команде в терминале: go env
Убедиться, что в терминале по команде gcc -v выводится версия компилятора.
READY!
-----------ETC:-----------------
$ go get github.com/gonum/plot
$ godoc builtin
godoc -http=:6060
Or:
go tool tour
go test -bench=. -benchmem
godoc fmt Fprint
godoc cmd/net/http ListenAndServe
godoc builtin make
---------Pointers:---------------------
Тот же код, но запишем тип b явно:
    var a int
    var b *int = &a
    fmt.Println(a, b) //  выведет "0 0x10410020"
здесь звёздочка означает "тип указатель на число".
Но, если она используется не перед типом, а перед самой переменной, то значение меняется на
обратное — "значение по этому адресу".
---DSN(mysql???):---------------
user@unix(/path/to/socket)/dbname?charset=utf8
user:password@tcp(localhost:5555)/dbname?charset=utf8
user:password@/dbname
user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname
---------Find only directory:------------------
package main
import (
    "fmt"
    "io/ioutil"
    "log"
)
func main() {
    files, err := ioutil.ReadDir(".")
    if err != nil {
        log.Fatal(err)
    }
    for _, file := range files {
        if file.Mode().IsDir() {
            fmt.Println(file.Name())
        }
    }
}
-----Select one row:-----------------
id := 1
var col string
sqlStatement := `SELECT col FROM my_table WHERE id=$1`
row := db.QueryRow(sqlStatement, id)
err := row.Scan(&col)
if err != nil {
    if err == sql.ErrNoRows {
        fmt.Println("Zero rows found")
    } else {
        panic(err)
    }
}
-------------show type:--------------
fmt.Printf("%T\n", var)
---helper:---------
func check(e error) {
if e != nil {
panic(e)
}
}
-----------Install LiteIDE----------------------
https://sourceforge.net/projects/liteide/files/x34.2/liteidex34.2.linux64-qt4.8.7.tar.gz/download
tar xzf liteidex34.2.linux64-qt4.8.7.tar.gz
go get -u github.com/visualfc/gotools
go get -u github.com/visualfc/gocode
cp $GOROOT/bin/godoc ~/liteide/bin
Options(Вид->параметры) -> GolangCode -> "Auto update depends package when it's source changed" set check.
```
# native compiler linux amd64

GOROOT=$HOME/golang/go1.9.7;
GOPATH=$HOME/Go;
GOARCH=amd64;
GOOS=linux;
CGO_ENABLED=1

PATH=$GOROOT/bin:$PATH

LITEIDE_GDB=gdb
LITEIDE_MAKE=make
LITEIDE_TERM=/usr/bin/lxterminal
LITEIDE_TERMARGS=
LITEIDE_EXEC=/usr/bin/lxterminal
LITEIDE_EXECOPT=-e

LITEIDE_SHELL=lxterminal;
```
tools> select environment
tools > edit current environment: (write from .bashrc)
tools > reload current environment
-------------------------AUTH-cookie in GIN:------------------
//Use http.Request.Cookie(cookiename) to get cookie, and http.SetCookie(gin.Context.Writer, &http.Cookie) to set cookie.
ctx.SetCookie(
        "token",
 "testtoken",
 3600,
 "/",
 "127.0.0.1",
 false,
 false,
    )
//Get cookie:
http.Request.Cookie(cookiename)
//Set:
http.SetCookie(gin.Context.Writer, &http.Cookie)
---------MD5helper:----------------
import (
 "crypto/md5"
 "encoding/hex"
)
func GetMD5Hash(text string) string {
    hash := md5.Sum([]byte(text))
    return hex.EncodeToString(hash[:])
}
func GetSha256Hash(text string) string {
    hash := Cr.Sum256([]byte(text))
    return hex.EncodeToString(hash[:])
}
-------

Комментариев нет :

Отправить комментарий

Благодарю за ваше участие!