Назад в блог

Сборка и установка программ на Go

Сборка и установка программ на Go

Go — это язык программирования со статической типизацией. Первоначально разработанный Google, Go имеет сходство с C с точки зрения синтаксиса. Однако по функциональности Go предлагает дополнительные возможности, такие как безопасность памяти, сборка мусора, структурная типизация и т. д. За последние несколько лет Go приобрел невероятную популярность.

В этом руководстве мы рассмотрим шаги по сборке и установке программ на Go на примере демонстрационной программы Go.

Сборка и установка Go

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

В программировании на Go сборка относится к процессу трансляции исходного кода в исполняемый бинарный файл. Исполняемый файл будет содержать необходимый вспомогательный код, чтобы он мог работать независимо на целевой платформе. В отличие от программ на Ruby/Python, бинарным файлам Go обычно не требуются системные зависимости для запуска на новой системе.

Размещение бинарного файла Go в пути к исполняемым файлам системы называется установкой программы. Как упоминалось ранее, в этом руководстве будет продемонстрирован запуск, сборка и установка простой программы «Hello world» на 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:

Go Programs apt update and go install

Проверьте версию Go:

go version
●     Установка Go с помощью snap

Пакеты Snap — это универсальные пакеты Linux, которые можно установить на любой поддерживаемый дистрибутив. В Snapcraft перечислены все поддерживаемые дистрибутивы с руководствами по установке. В Ubuntu поддержка snap включена по умолчанию. Go также доступен в виде snap-пакета. Вам нужно иметь в виду, что он официально не поддерживается Golang. Snap-пакет управляется сторонним поставщиком.

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

snap install go

Затем проверьте версию Go:

snap go version

Настройка проекта Go

В нашей системе есть все необходимые инструменты для начала разработки приложений на Go. Время создать наш демонстрационный проект. Сначала создайте отдельный каталог для нашего проекта:

mkdir demo_project

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

cd demo_project

Здесь создайте новый текстовый файл с именем main.go:

Следующий код представляет собой простую программу, которая при запуске выведет «Hello world». Скопируйте код:

Go Programs nano main_go

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

run main_go

Компилятор Go скомпилировал исходный файл в бинарный файл и выполнил его. Это также подтверждает, что программа успешно работает.

Настройка рабочей области Go

Чтобы правильно установить программы на Go, нам нужно настроить рабочую область Go и GOPATH.

Сначала создайте структуру каталогов:

mkdir bin src

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

Go Programs nano bashrc

Добавьте следующие строки в конец файла:

Go Programs nano bashrc modified

Перезагрузите bashrc:

Проверьте, успешно ли применились изменения:

path variable

Сборка бинарных файлов Go

В этом разделе будет показано, как компилировать код Go в автономный исполняемый бинарный файл для распространения. Бинарный файл будет содержать не только код Go, но и дополнительные системные библиотеки для его запуска. Чтобы скомпилировать наш код, выполните следующую команду:

build main_go

Если файлов с кодом Go несколько, используйте следующую команду:

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

run main binary

Эта программа готова к распространению на другие компьютеры.

●     Изменение имени бинарного файла

При сборке Go автоматически выбирает имя для исполняемого файла. Существует два возможных варианта выбора имени.

  • Если модули Go используются, то исполняемый файл будет использовать последнюю часть имени модуля.
  • Если модули Go не используются, то Go будет использовать имя текущего каталога или имя исходного файла.

Работа с более сложными программами требует другого соглашения об именах. В таких сценариях стандартные методы именования не очень полезны. В этой ситуации лучший способ — настроить вывод с помощью флага -o. Давайте проведем небольшую демонстрацию. Соберите программу Go с флагом -o для указания другого имени файла:

build binary with different name

Флаг -o указывает Go записать результат в соответствии с переданным аргументом. В данном случае исполняемый файл будет находиться в каталоге bin и будет называться hello.

Затем протестируйте новый исполняемый файл:

bin hello_go

Установка программ на Go

До сих пор мы демонстрировали сборку распространяемых бинарных файлов Go из исходных файлов. Мы можем распространять их на другие системы, развертывать и проводить тестирование. Однако их нельзя запустить за пределами их исходных каталогов. Если вы планируете активно использовать программу, это ограничение может сильно раздражать. Чтобы упростить задачу, мы можем установить программы Go и обращаться к ним из любого места системы.

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

go install

Эта команда работает так же, как и go build. Однако вместо того, чтобы оставлять исполняемый файл в исходном каталоге, он помещается в следующий каталог:

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

go env path

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

ls go path

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

Go Programs check installation by running binary

Наконец, вы сможете взять свои программы и установить их в свою систему. Вы сможете использовать их где угодно и когда угодно.

Заключение

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

Для разработчиков CloudSigma предлагает поддержку Go API для управления вашими облачными серверами. Это позволяет редактировать ресурсы и масштабировать инфраструктуру.

Приятной работы!

author

Pranay Kapgate

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

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