-----------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[:])
}
-------
Лаконично описаны приемы для Linux систем и бакенд-программирования с проверенными мной рабочими Bash и SQL командами. Так же будут рассматриватся настройка среды разработки для PHP, JavaScript/NodeJs, SQL, Go, Python и для различных баз данных в Linux.
Установка GoLang на Ubuntu14-17, Debian 8
Подписаться на:
Комментарии
(
Atom
)
Комментариев нет :
Отправить комментарий
Благодарю за ваше участие!