Go — это язык программирования со статической типизацией. Первоначально разработанный Google, Go имеет сходство с C с точки зрения синтаксиса. Однако по функциональности Go предлагает дополнительные возможности, такие как безопасность памяти, сборка мусора, структурная типизация и т. д. За последние несколько лет Go приобрел невероятную популярность.
В этом руководстве мы рассмотрим шаги по сборке и установке программ на Go на примере демонстрационной программы Go.
Сборка и установка Go
Прежде чем двигаться дальше, давайте кратко разберем, что означают сборка и установка в контексте программирования на Go.
В программировании на Go сборка относится к процессу трансляции исходного кода в исполняемый бинарный файл. Исполняемый файл будет содержать необходимый вспомогательный код, чтобы он мог работать независимо на целевой платформе. В отличие от программ на Ruby/Python, бинарным файлам Go обычно не требуются системные зависимости для запуска на новой системе.
Размещение бинарного файла Go в пути к исполняемым файлам системы называется установкой программы. Как упоминалось ранее, в этом руководстве будет продемонстрирован запуск, сборка и установка простой программы «Hello world» на Go.
Предварительные требования
Перед началом давайте рассмотрим предварительные требования, которые вам необходимо выполнить, чтобы следовать этому руководству:
- Правильно настроенная Ubuntu 20.04. Узнайте, как установить и настроить сервер Ubuntu.
- Пользователь без прав root, но с привилегиями sudo. Права root требуются для внесения изменений на системном уровне. Из этого руководства вы узнаете, как предоставить права sudo пользователю без прав root user.
- Правильно настроенная среда программирования Go.
Сначала мы быстро рассмотрим установку и настройку среды программирования Go. Для получения более подробного пошагового руководства по установке Go перейдите сюда.
Установка Go
Go доступен на всех основных платформах (Windows, Linux и macOS). Официально он доступен непосредственно с Golang. Из-за названия веб-сайта Go часто называют Golang. Здесь мы всегда будем называть язык программирования Go — Go, а веб-сайт Golang — Golang.
Golang предлагает подробную документацию по установке Go для всех поддерживаемых платформ. Однако официальный метод описывает ручную установку. Каждый раз при выпуске новой версии вам приходится вручную обновлять установку до последней версии. Вместо этого мы можем напрямую установить Go с помощью APT (из стандартных репозиториев Ubuntu) или snap (из Snapcraft).
● Установка Go с помощью APT
Go доступен напрямую из официальных репозиториев Ubuntu. Однако это не всегда самая последняя версия Go. В репозитории Ubuntu также доступны два варианта Go: golang-go и gccgo-go. В то время как golang-go является официальной версией от Golang, gccgo-go — это фронтенд Go для GCC (как часть компилятора GNU). Как правило, golang-go является предпочтительным выбором.
Чтобы установить golang-go, выполните следующую команду APT:
|
1 |
sudo apt update && sudo apt install golang-go |

Проверьте версию Go:
|
1 |
go version |
● Установка Go с помощью snap
Пакеты Snap — это универсальные пакеты Linux, которые можно установить на любой поддерживаемый дистрибутив. В Snapcraft перечислены все поддерживаемые дистрибутивы с руководствами по установке. В Ubuntu поддержка snap включена по умолчанию. Go также доступен в виде snap-пакета. Вам нужно иметь в виду, что он официально не поддерживается Golang. Snap-пакет управляется сторонним поставщиком.
Чтобы установить Go через snap, выполните следующую команду:
|
1 |
sudo snap install go --classic |

Затем проверьте версию Go:
|
1 |
go version |
Настройка проекта Go
В нашей системе есть все необходимые инструменты для начала разработки приложений на Go. Время создать наш демонстрационный проект. Сначала создайте отдельный каталог для нашего проекта:
|
1 |
mkdir -v demo_project |

Затем измените текущий каталог на только что созданный:
|
1 |
cd demo_project/ |

Здесь создайте новый текстовый файл с именем main.go:
|
1 |
nano main.go |
Следующий код представляет собой простую программу, которая при запуске выведет «Hello world». Скопируйте код:
|
1 2 3 4 5 6 7 |
package main import "fmt" func main() { fmt.Println("hello world!") } |

Сохраните файл и закройте редактор. Убедитесь, что код работает правильно:
|
1 |
go run main.go |

Компилятор Go скомпилировал исходный файл в бинарный файл и выполнил его. Это также подтверждает, что программа успешно работает.
Настройка рабочей области Go
Чтобы правильно установить программы на Go, нам нужно настроить рабочую область Go и GOPATH.
Сначала создайте структуру каталогов:
|
1 |
mkdir -pv $HOME/go/{bin,src} |

Затем нам нужно объявить значение GOPATH и добавить его в PATH. Откройте bashrc файл:
|
1 |
nano ~/.bashrc |

Добавьте следующие строки в конец файла:
|
1 2 3 |
export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin |

Перезагрузите bashrc:
|
1 |
source ~/.bashrc |
Проверьте, успешно ли применились изменения:
|
1 |
echo $PATH |
Сборка бинарных файлов Go
В этом разделе будет показано, как компилировать код Go в автономный исполняемый бинарный файл для распространения. Бинарный файл будет содержать не только код Go, но и дополнительные системные библиотеки для его запуска. Чтобы скомпилировать наш код, выполните следующую команду:
|
1 |
go build main.go |

Если файлов с кодом Go несколько, используйте следующую команду:
|
1 |
go build |
Если файл не указан, Go будет искать файлы Go в текущем каталоге и скомпилирует их все. Каждый бинарный файл называется так же, как и его исходный файл Go. В этом примере Go собрал программу main. Запустите программу:
|
1 |
./main |

Эта программа готова к распространению на другие компьютеры.
● Изменение имени бинарного файла
При сборке Go автоматически выбирает имя для исполняемого файла. Существует два возможных варианта выбора имени.
- Если модули Go используются, то исполняемый файл будет использовать последнюю часть имени модуля.
- Если модули Go не используются, то Go будет использовать имя текущего каталога или имя исходного файла.
Работа с более сложными программами требует другого соглашения об именах. В таких сценариях стандартные методы именования не очень полезны. В этой ситуации лучший способ — настроить вывод с помощью флага -o. Давайте проведем небольшую демонстрацию. Соберите программу Go с флагом -o для указания другого имени файла:
|
1 |
go build -o bin/hello |

Флаг -o указывает Go записать результат в соответствии с переданным аргументом. В данном случае исполняемый файл будет находиться в каталоге bin и будет называться hello.
Затем протестируйте новый исполняемый файл:
|
1 |
./bin/hello |
Установка программ на Go
До сих пор мы демонстрировали сборку распространяемых бинарных файлов Go из исходных файлов. Мы можем распространять их на другие системы, развертывать и проводить тестирование. Однако их нельзя запустить за пределами их исходных каталогов. Если вы планируете активно использовать программу, это ограничение может сильно раздражать. Чтобы упростить задачу, мы можем установить программы Go и обращаться к ним из любого места системы.
Чтобы установить программу, выполните следующую команду Go в исходном каталоге:
|
1 |
go install |

Эта команда работает так же, как и go build. Однако вместо того, чтобы оставлять исполняемый файл в исходном каталоге, он помещается в следующий каталог:
|
1 |
$GOPATH/bin |
Переменные GOPATH и GOBIN указывают Go, где искать рабочие области Go. GOPATH по умолчанию указывает на $HOME/go. Мы вручную установили GOBIN в значение $GOPATH/bin. Чтобы проверить расположение GOPATH и GOBIN используйте следующую команду:
|
1 |
go env GOPATH |
|
1 |
go env GOBIN |

Проверьте содержимое $GOPATH/bin. Наша программа должна быть там:
|
1 |
ls $GOPATH/bin |

Время проверить, прошла ли установка успешно. Смените текущий каталог на другое место и попробуйте запустить программу Go:
|
1 |
demo_project |

Наконец, вы сможете взять свои программы и установить их в свою систему. Вы сможете использовать их где угодно и когда угодно.
Заключение
В этом руководстве мы успешно продемонстрировали, как использовать инструменты Go для сборки исполняемых бинарных файлов из исходного кода. Эти бинарные файлы можно использовать на других системах даже без какой-либо настройки Go. Наконец, мы показали, как установить программу Go, чтобы она была доступна из любого места в системе.
Для разработчиков CloudSigma предлагает поддержку Go API для управления вашими облачными серверами. Это позволяет редактировать ресурсы и масштабировать инфраструктуру.
Приятной работы!




Комментарии
Комментариев пока нет. Будьте первым.