Установка Go (Golang) на Linux
TL;DR
Go (Golang) — быстрый и простой язык программирования от Google. В этом руководстве показано, как скачать и установить бинарный пакет Go, настроить окружение для пользователя и системы, а также проверить установку простым примером «Hello World». Альтернативы: менеджеры пакетов дистрибутива и snap.
Введение

Go (часто называют Golang) — открытый язык программирования для создания производительных, масштабируемых и простых в сопровождении приложений. На Go написаны популярные DevOps-инструменты: Docker, Kubernetes, Terraform, Grafana и HashiCorp Vault. Это руководство шаг за шагом покажет установку Go на Linux (Debian, Ubuntu, CentOS), настройку переменных окружения и сборку простого приложения.
Важно. В примерах используется версия go1.13, как в исходном тексте. При желании скачивайте более новые версии с официального сайта https://golang.org/doc/.
Что мы сделаем
- Скачать стабильный релиз Go
- Установить бинарный пакет
- Настроить переменные окружения для пользователя и глобально
- Проверить установку простым приложением
Требования перед установкой
- Доступ root или sudo для записи в /usr/local при установке бинарного архива
- Подключение к интернету для скачивания архива
- Минимум нескольких мегабайт свободного места для самого архива и распаковки
Шаг 1 — Скачать последнюю стабильную версию Go
Скачайте указанный архив с сайта Google. В примере используется go1.13 для 64‑битной Linux-системы.
wget https://dl.google.com/go/go1.13.linux-amd64.tar.gzПроверьте контрольную сумму загруженного файла (sha256) — значение должно совпадать с опубликованным на странице релиза.
sha256sum go1.13.linux-amd64.tar.gzВы увидите вывод наподобие:
68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856 go1.13.linux-amd64.tar.gzРаспакуйте архив в каталог /usr/local. Для этого требуется права root:
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gzПосле распаковки двоичные файлы Go будут находиться в /usr/local/go.

Шаг 2 — Настройка системного окружения для Go
Чтобы пользоваться командой go и запускать ваши программы, нужно настроить GOPATH и PATH. Ниже — инструкции для пользователей Bash и Zsh, а также системная настройка для всех пользователей.
Для Debian и Ubuntu
Создайте или откройте файл ~/.bash_profile в домашней директории и добавьте переменные окружения:
vim ~/.bash_profileВставьте:
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/binСохраните файл. Чтобы этот профиль загружался при интерактивной оболочке, добавьте его в ~/.bashrc:
vim ~/.bashrcДобавьте в конец:
source ~/.bash_profileВыйдите из сессии и зайдите снова, чтобы изменения вступили в силу.

Для CentOS 7
На CentOS также редактируйте ~/.bash_profile:
vim ~/.bash_profileДобавьте те же строки:
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/binПримените изменения немедленно:
source ~/.bash_profile
Для Zsh
Для Zsh поместите переменные в ~/.zprofile:
vim ~/.zprofileВставьте:
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/binФайл загружается автоматически при входе в систему.
Создание рабочей директории
Create рабочую папку проекта, указанную в GOPATH:
mkdir -p $HOME/workПроверьте переменные:
echo $GOPATH
echo $PATHКоманды go должны быть доступны:
go version
go --help
Системная настройка для всех пользователей
Чтобы объявить переменные глобально для всех пользователей Bash, создайте файл в /etc/profile.d:
cd /etc/profile.d/
vim go.shДобавьте:
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/binСделайте файл исполняемым:
chmod +x /etc/profile.d/go.shТеперь все пользователи Bash получат доступ к команде go при следующем входе в систему.

Шаг 3 — Тестирование с помощью “Hello World”
Создайте структуру каталогов в GOPATH и новый проект:
cd $GOPATH
mkdir -p src/ bin/
mkdir -p src/hello/
cd src/hello/Создайте файл hello.go:
vim hello.goВставьте код программы:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World, Go")
}Соберите бинарник в каталог $GOPATH/bin:
go build -o $GOPATH/bin/hello hello.goЗапустите:
helloВы увидите вывод:

Если вывод совпадает, установка и базовая настройка завершены успешно.
Альтернативный путь — установка через пакетный менеджер
Установка из бинарного архива даёт контроль над версией и местом установки. Однако можно использовать менеджеры пакетов дистрибутива или snap для быстрой установки и автообновлений. Минусы: в репозиториях порой доступны старые версии.
Примеры:
- Ubuntu / Debian: sudo apt install golang (в репозиториях может быть устаревшая версия)
- CentOS: dnf или yum install golang
- Snap: sudo snap install go –classic
Если вам нужна конкретная версия (например go1.13 или более новая), рекомендуется распаковка official tarball в /usr/local.
Частые проблемы и их решения
- “go: command not found” — проверьте переменную PATH и наличие /usr/local/go/bin в ней.
- Не видны пакеты в GOPATH — убедитесь, что GOPATH указывает на существующую директорию и в ней есть src/ и bin/.
- Права доступа при распаковке — используйте sudo при записи в /usr/local.
- Модули vs GOPATH — современные проекты используют Go Modules (файлы go.mod), тогда GOPATH меньше влияет на структуру проекта.
Когда этот способ не подходит
- На системах с ограниченными правами без sudo лучше использовать snap или локальную установку в домашнюю директорию.
- Если нужен автоматический апгрейд и безопасная интеграция с системой пакетов — рассмотрите менеджер пакетов дистрибутива.
Ментальные модели и практические советы
- GOPATH = рабочая область разработки (старый подход). Go Modules (модульная система) позволяют хранить проекты вне GOPATH. Если проект содержит go.mod, сборка и управление зависимостями идут через модули.
- /usr/local/go — глобальная инсталляция двоичных файлов. PATH должен указывать на /usr/local/go/bin.
- $GOPATH/bin — место для скомпилированных бинарников пользователя; рекомендуется добавить в PATH.
Контрольные списки по ролям
Для разработчика:
- Настроить GOPATH и PATH
- Создать рабочую директорию и инициализировать проект (go mod init)
- Собрать и запустить приложение
Для администратора системы:
- Распаковать /usr/local/go с правами root
- Настроить /etc/profile.d/go.sh для глобального доступа
- Обеспечить безопасность и обновления
Сводка основных команд
wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz
sha256sum go1.13.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
mkdir -p $GOPATH/src/hello
cd $GOPATH/src/hello
# создать hello.go и собрать
go build -o $GOPATH/bin/hello hello.go
helloФакты и краткая памятка
| Параметр | Значение |
|---|---|
| Официальный сайт | https://golang.org/doc/ |
| Тип установки | Бинарный архив / Пакетный менеджер / Snap |
| Стандартная папка инсталляции | /usr/local/go |
| Рабочая область пользователя | $HOME/work (в примере) |
Краткое руководство по отладке
- Проверить доступность команды: which go или command -v go.
- Проверить переменные: echo $PATH и echo $GOPATH.
- Убедиться, что /usr/local/go/bin существует и содержит исполняемые файлы.
- Запустить go version для проверки работоспособности.
Однострочные определения (глоссарий)
- Go Modules — механизм управления зависимостями и версионирования в Go.
- GOPATH — старая модель рабочей директории для проектов Go.
- /usr/local/go — стандартный каталог для установки официального бинарного дистрибутива.
Совместимость и советы по миграции
- Если вы работаете с проектами, созданными до появления модулей, они могут требовать расположения в GOPATH. Новые проекты лучше создавать с поддержкой Go Modules (go mod init). Миграция: добавить go.mod и использовать
go mod tidy.
Короткое объявление для команды (100–200 слов)
В проекте добавлена стандартизированная инструкция по установке Go на Linux. Руководство описывает ручную установку официального бинарного архива в /usr/local/go, настройку переменных окружения для пользователя и для всех пользователей через /etc/profile.d, а также пример «Hello World» для проверки. В документе также перечислены альтернативы через менеджеры пакетов и snap, указаны советы по работе с GOPATH и Go Modules, чек‑листы для разработчиков и администраторов, а также рекомендации по отладке и миграции проектов. Рекомендуется использовать этот процесс для унификации среды разработки в команде и при развёртывании серверных агентов на Linux.
Ссылки
- Официальная документация Go: https://golang.org/doc/
Итог
Установка Go из официального архива обеспечивает контроль над версией и местом установки. Для большинства современных проектов предпочтительнее использовать Go Modules и хранить исходники вне GOPATH. Если нужна простота — воспользуйтесь пакетным менеджером дистрибутива или snap, но проверьте версию.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента