Golang#

Первое приложение c использованием Go на Astra Linux SE 1.6 / 1.7 / 1.8#

Введение#

В этом руководстве вы узнаете, как начать разработку на языке Go в Astra Linux Special Edition, создав простое приложение Hello World.

В Astra Linux Special Edition Go не установлен по умолчанию, но может быть установлен с пакетами, для которых он требуется. Его также можно установить из репозитория или скачать и установить с официального сайта.

Версии Go#

Весрия Astra Linux SE

Версия GO

Репозиторий

Astra Linux SE 1.6

1.7

devel

Astra Linux SE 1.7

1.15

main

Astra Linux SE 1.7.5

1.19

main

Astra Linux SE 1.8

1.19 и выше

extended

Для установки из репозитория нужно чтобы репозиторий в котором находится Go был подключен, и выполнить команду под высокоцелостным администратором (либо сделать это через графический интерфейс):

$ sudo apt-get install golang

Так же можно устанавить Go скачав его с официального сайта:

$ wget https://go.dev/dl/go1.21.3.linux-amd64.tar.gz

Распакуем скачанный архив в каталог /usr/local (действия делаются из под высокоцелостного администратора):

$ sudo tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz

Настройка переменных окружения PATH и GOPATH необходима для обеспечения корректной работы среды разработки.

Чтобы настроить переменные окружения, откроем файл .bashrc в текстовом редакторе:

$ nano ~/.bashrc

В конец открывшегося файла добавим перечисленные ниже строки:

export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/goproject
export PATH=$PATH:$GOPATH/bin

Теперь сохраним внесенные изменения, а после перезапустим оболочку и обновим переменные окружения:

$ source ~/.bashrc

При этом обязательно организуйте рабочее пространство для проектов на Go в домашней директории:

$ mkdir $HOME/goproject

Настройка среды разработки#

Чтобы убедиться, что Golang был успешно установлен, выполним команду:

$ go version

Чтобы посмотреть какие модули установлены, выполните команду:

$ dpkg -l | grep '\bgolang-'

Либо тоже самое можно сделать через графический интерфейс.

Чтобы узнать, какие еще модули Golang включены в Astra Linux, выполните следующую команду:

$ apt-cache search --names-only ^golang-

Так же это можно сделать из графического интерфейса.

Как установить дополнительные модули (из репозиториев Astra Linux) можно на примере установки пакета «easyjson» (установка выполняется под высоко целостным администратором):

$ sudo apt-get install golang-easyjson

Также возможна установка дополнительных модулей из графического интерфейса.

Если необходимы модули которых нет в репозиториях Astra Linux - можно устанавливать модули для Go классическим для этого языка методом.

Первое приложение#

Cоздадим в рабочем пространстве ($HOME/goproject) тестовый файл с расширением .go с помощью текстового редактора:

$ nano hello.go

Вставим следующий код в файл hello.go:

package main

import (
    "fmt"
    "net/http"
)

func HelloWorld(w http.ResponseWriter, req *http.Request) {

    fmt.Fprintf(w, "<h1>Hello world.</h1>")

}

func main() {

    fmt.Println("Hello.")
    fmt.Println("Starting http server.")
    // Register handler function
    http.HandleFunc("/", HelloWorld)
    fmt.Println("Go to localhost:8081 To terminate press CTRL+C")
    // Start server
    http.ListenAndServe(":8081", nil)

}

Соберем программу:

$ go build hello

И запустим:

$ ./hello
Hello.
Starting http server.
Go to localhost:8081 To terminate press CTRL+C

Получить результат:

$ curl http://localhost:8081
<h1>Hello world.</h1>

Можно также зайти через браузер по тому же адресу чтобы увидеть результат.