Введение
Go — язык программирования, родившийся из разочарования в Google. Разработчикам постоянно приходилось выбирать между эффективным языком, который долго компилировался, и простым в программировании, но неэффективным в продакшене. Go был разработан с учётом всех трёх факторов: быстрой компиляции, простоты программирования и эффективного выполнения в продакшене.
Хотя Go — универсальный язык программирования, подходящий для множества различных проектов, он особенно хорошо подходит для сетевых/распределённых системных приложений и известен как “язык облака”. Он помогает современному программисту достигать большего с помощью надёжного набора инструментов, избавляет от необходимости обсуждать форматирование, делая его частью спецификации языка, а также упрощает развёртывание благодаря компиляции в один двоичный файл. Go прост в освоении благодаря очень небольшому набору ключевых слов, что делает его отличным выбором как для новичков, так и для опытных разработчиков.
Это руководство поможет вам установить и настроить рабочее пространство для программирования на Go через командную строку. В руководстве подробно описаны этапы установки для Ubuntu 18.04, но общие принципы применимы и к другим дистрибутивам Linux на базе Debian.
Предпосылки
- Вам понадобится компьютер или виртуальная машина с установленной Ubuntu 18.04, а также административный доступ к этому устройству и подключение к Интернету.
Шаг 1 — Запуск Go
На этом этапе вам нужно установить Go, загрузив текущую версию с официальной страницы загрузок Go.
Сначала подключитесь к серверу Ubuntu через ssh:
ssh sammy@your_server_ip
Затем перейдите на официальную страницу загрузок Go в веб-браузере. Скопируйте оттуда URL-адрес текущего двоичного tar-архива.
На момент написания статьи последняя версия — go1.16.7. Чтобы установить Go на сервер Ubuntu (или любой другой сервер Linux), скопируйте URL-адрес файла, заканчивающегося на linux-amd64.tar.gz.
Теперь, когда ваша ссылка готова, сначала убедитесь, что вы находитесь в основном каталоге:
cd Затем используйте curl для скачивания архива, заменив выделенный URL-адрес на тот, который вы только что скопировали. Флаг -O гарантирует, что вывод будет отправлен в файл, а флаг L задаёт HTTPS-перенаправление, поскольку ссылка берётся с сайта Go и перенаправляется сюда перед загрузкой файла:
curl -OL https://golang.org/dl/go1.16.7.linux-amd64.tar.gz
Чтобы проверить подлинность загруженного вами файла, выполните команду sha256sum, передав ей имя файла в качестве аргумента:
sha256sum go1.16.7.linux-amd64.tar.gz
Это вернет контрольную сумму SHA256 tar-архива:
Output
go1.16.7.linux-amd64.tar.gz
7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04 go1.16.7.linux-amd64.tar.gzЕсли контрольная сумма совпадает с указанной на странице загрузок, вы выполнили этот шаг правильно.
Затем используйте tar для распаковки tar-архива. Эта команда включает флаг -C, который указывает tar перейти в указанный каталог перед выполнением любых других операций. Это означает, что извлечённые файлы будут записаны в каталог /usr/local/, рекомендуемое место для установки Go… Флаг x указывает tar на распаковку, v указывает, что нам нужен полный вывод (список извлекаемых файлов), а f указывает на необходимость указать имя файла:
sudo tar -C /usr/local -xvf go1.16.7.linux-amd64.tar.gz
Хотя /usr/local/go является рекомендуемым местом для установки Go, некоторые пользователи могут предпочесть или нуждаться в других путях.
Шаг 2 — Настройка путей перехода
На этом этапе вы определяете пути в своей среде.
Сначала задайте значение параметра Go root, которое указывает Go, где искать файлы. Это можно сделать, отредактировав файл .profile, содержащий список команд, которые система запускает при каждом входе в систему.
Откройте файл .profile, хранящийся в домашнем каталоге пользователя, в любом текстовом редакторе. Мы будем использовать nano:
sudo nano ~/.profile
Затем добавьте следующую информацию в конец файла:
. . .
export PATH=$PATH:/usr/local/go/binПосле добавления этой информации в свой профиль сохраните и закройте файл. Если вы используете nano, нажмите CTRL+X, затем Y, а затем ENTER.
Затем обновите свой профиль, выполнив следующую команду:
source ~/.profile
После этого проверьте, можете ли вы запускать команды go, запустив версию go:
go version
Эта команда выведет номер выпуска каждой версии Go, установленной в вашей системе:
Output
go version go1.16.7 linux/amd64Этот вывод подтверждает, что теперь на вашем сервере запущен Go.
Шаг 3 — Проверка установки
Теперь, когда Go установлен и маршруты для вашего сервера настроены, вы можете создать приложение Hello, World!, чтобы убедиться, что Go работает.
Сначала создайте новый каталог для вашего рабочего пространства Go, в котором Go будет создавать свои файлы:
mkdir hello
Затем перейдите в созданный вами каталог:
cd hello
При импорте пакетов необходимо управлять зависимостями через сам модуль. Это можно сделать, создав файл go.mod с помощью команды go mod init:
go mod init your_domain/hello
Затем создайте файл Hello, World! Go в вашем любимом текстовом редакторе:
nano hello.go
Добавьте следующий текст в файл hello.go:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}Затем сохраните и закройте файл, нажав CTRL+X, затем Y, затем ENTER.
Проверьте свой код и убедитесь, что он выводит приветствие Hello, World!:
go run .
Output
Hello, World!Команда go run компилирует и запускает пакет Go из списка исходных файлов .go в новом каталоге hello, который вы создали, по указанному вами пути. Однако вы также можете использовать go build для создания исполняемого файла, что может сэкономить ваше время.
Шаг 4 — Преобразуйте код Go в двоичный исполняемый файл
Команда go run обычно используется как сокращение для компиляции и запуска программы, требующей частых изменений. Если вы закончили свой код и хотите запустить его без каждой компиляции, вы можете использовать команду go build для преобразования кода в исполняемый двоичный файл. Сборка кода в исполняемый двоичный файл объединяет вашу программу в один файл со всем вспомогательным кодом, необходимым для его запуска. После сборки исполняемого двоичного файла вы можете запустить команду go install, чтобы поместить программу в путь к исполняемым файлам и запускать её из любой точки системы. После этого ваша программа успешно выдаст сообщение «Hello, World!» при появлении соответствующего запроса, и вам больше не придётся компилировать программу.
Попробуйте запустить go build. Убедитесь, что вы запускаете его из того же каталога, где хранится файл hello.go:
go build
Затем запустите ./hello, чтобы проверить правильность работы кода:
./hello
Output
Hello, World!Это подтверждает, что вы успешно преобразовали код hello.go в исполняемый двоичный файл. Однако вы можете вызвать этот двоичный файл только из этого каталога. Если вы хотите запустить эту программу из другого места на сервере, вам потребуется указать полный путь к двоичному файлу.
Ввод полного пути к двоичному файлу может быстро стать утомительным. В качестве альтернативы можно выполнить команду go install. Она похожа на go build, но вместо того, чтобы помещать исполняемый файл в текущий каталог, команда go install помещает его в папку $GOPATH/bin, что позволяет запускать его из любой точки сервера.
Для успешного запуска go install необходимо передать ему путь к бинарным файлам, созданный с помощью go build. Чтобы узнать путь к бинарным файлам, выполните следующую команду go list:
go list -f ‘{{.Target}}’
go list создаёт список всех пакетов Go по имени, хранящихся в текущем рабочем каталоге. Флаг f заставляет go list возвращать вывод в другом формате, в зависимости от переданного шаблона пакета. Это указывает на необходимость использования шаблона Target, что заставляет go list возвращать путь установки каждого пакета, хранящегося в этом каталоге:
Output
‘/home/sammy/go/bin/helloЭто путь установки двоичного файла, созданного с помощью go build. То есть каталог, куда установлен этот двоичный файл, — /home/sammy/go/bin/.
Добавьте этот каталог установки в путь к системной оболочке. Не забудьте изменить выделенную часть этой команды, чтобы она соответствовала каталогу установки исполняемых файлов в вашей системе, если он отличается:
export PATH=$PATH:/home/sammy/go/bin/
Наконец, запустите go install, чтобы скомпилировать и установить пакет:
go install
Запустите этот исполняемый файл, просто набрав hello
hello
Output
Hello, World!Если вы получили вывод Hello, World!, вы успешно сделали свое приложение Go исполняемым из указанного и неуказанного пути на вашем сервере.
Результат
Загрузив и установив последний пакет Go, а также указав пути к нему, вы получите готовую систему для разработки на Go. Дополнительные статьи об установке и использовании Go вы можете найти в нашем теге Go и подписаться на рассылку.









