Рубрики
go

000 / go install and build / Установка golang на linux / сборка

Установка golang на linux

0. Установка
# debian  ubuntu
apt update && apt upgrade && apt install golang
# archlinux
pacman -Sy go 

1. Компиляция и запуск файлов
Go — это компилируемый язык. 

Первый способ — через команду "go run". 
Эта команда компилирует исполняемый файл, запускает его и удаляет. 
Этим способом пользуются, когда нужно разово запустить небольшую программу на Go и забыть.

Второй способ — через команду "go build". 
Она выполняет компиляцию и создает исполняемый файл в текущей директории.

go build hello.go # Создаем бинарный файл hello.go
В директории с файлом должен появиться новый файл hello. 
Можно запустить его как обычный исполняемый файл:
./hello

Пример:
go fmt hello-world.go
go build hello-world.go
go run build hello-world.go

Кросс компиляция под разные платформы:

go mod init hello # Создаем Go-модуль
GOOS=windows GOARCH=386 go build -o hello_windows.exe # Исполняемый файл для Windows
GOOS=windows GOARCH=amd64 go build -o hello_windows64.exe # Файл для Windows с архитектурой x64
GOOS=linux GOARCH=amd64 go build -o hello_amd64 # Файл для linux с архитектурой x64
GOOS=linux GOARCH=arm go build -o hello_linux_arm # Файл для Linux на arm
GOOS=darwin GOARCH=arm64 go build -o hello_mac_arm64 # для mac os

Показать переменные go / рабочее пространство

go env
 
В языке Go поиск программ и их зависимостей (например, import "пакет"), сначала выполняется в каталогах, 
прописанных в переменную $GOPATH, а затем - в переменной $GOROOT (путь установки go, по умолчанию /usr/lib/go).
 
 
$GOPATH работает как $PATH и может содержать несколько записей. 
Это может быть полезно для отделения пакетов, скачанных через go get, от вашего кода, например GOPATH=$HOME/go:$HOME/mygo
 
Создать само рабочее пространство:
$ mkdir -p ~/go/src
каталог ~/go/src предназначен для хранения исходных текстов проектов. 
При компиляции Go также создаст каталог bin для исполняемых файлов и pkg для кэша отдельных пакетов.
Вы можете добавить ~/go/bin в переменную окружения $PATH для запуска установленных Go-программ:
 
export PATH="$PATH:$HOME/go/bin"