Гид по технологиям

Как установить Go (Google Go) на Linux

• 6 min read • Linux • Обновлено 21 Nov 2025
Установка Go на Linux: быстро и понятно
Установка Go на Linux: быстро и понятно

Краткое введение

Go — компилируемый язык программирования, созданный внутри Google. Его цель — быстрая компиляция больших проектов и встроенная поддержка конкурентности. Исторически в составе инструментов были компиляторы 6g (для 64‑битных бинарников) и 8g (для 32‑битных), но в современных релизах используется единый инструмент go и готовые бинарные сборки.

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

Обзор процесса

  1. Подготовить систему: установить зависимости и переменные среды.
  2. Получить исходный код Go (через Mercurial в старых инструкциях) или использовать официальные бинарные пакеты/репозитории.
  3. Собрать компилятор (в старой модели — с помощью gcc, затем запускать ./all.bash).
  4. Проверить установку простым тестом “Hello, Go!”.

Варианты: сборка из исходников даёт контроль и понимание процесса. Но для большинства пользователей удобнее установить готовый пакет из репозитория дистрибутива или официальный архив с golang.org.


Подготовка системы: переменные окружения

Go ожидает несколько переменных окружения, чтобы знать, где размещать и искать файлы. Рекомендуется добавить их в ~/.bashrc или ~/.profile, чтобы они сохранялись между сессиями.

Откройте ваш ~/.bashrc и добавьте (пример):

# Указать каталог для исходников Go перед компиляцией
export GOROOT=$HOME/gosource

# Архитектура машины: "amd64" для 64‑бит, "386" для 32‑бит
export GOARCH=386

# Операционная система
export GOOS=linux

# Каталог для исполнителей/бинарников после установки
# Не забудьте создать этот каталог перед установкой
export GOBIN=$HOME/gobin

# Включить Go бинарники в PATH
export PATH=$PATH:$GOBIN

Сделайте активными изменения командой:

source ~/.bashrc

Примечание: подставляйте значения GOROOT/GOARCH/GOOS по своему окружению. Для современного удобства часто достаточно установить официальный пакет и не трогать GOROOT вручную.

Установка зависимостей для сборки

Для сборки компилятора из исходников потребуется C‑компилятор (gcc) и ряд утилит. На Debian/Ubuntu‑подобных системах можно установить необходимые пакеты так:

# Пример для Debian/Ubuntu
sudo apt-get update
sudo apt-get install bison gcc libc6-dev ed gawk make python-setuptools python-dev build-essential
sudo easy_install mercurial

Если вы предпочитаете aptitude, замените apt-get на aptitude. На других дистрибутивах используйте эквивалентные пакеты (yum, dnf, pacman и т.д.).

Важно: команды выше исправляют распространённые опечатки и объединяют корректные имена пакетов.

Получение и компиляция исходного кода Go

Классический способ (исторически):

hg clone -r release https://go.googlecode.com/hg/$GOROOT

После скачивания перейдите в каталог исходников и запустите полный скрипт сборки:

cd $GOROOT/src
./all.bash

Примечание: сборка компилятора средствами gcc может занять несколько минут. Это не отражает быстроту компиляции программ на Go — она окажется значительно быстрее после построения компилятора.

Возможные ошибки:

  • Сообщение о $GOBIN означает, что каталог, указанный в GOBIN, не создан. Создайте его: mkdir -p $GOBIN
  • Ошибки компиляции обычно указывают на отсутствующие пакеты или несовместимость версий GCC/библиотек. Проверьте вывод ./all.bash.

Современная альтернатива: скачивание официального tarball или установка через пакетный менеджер (см. раздел «Альтернативные подходы»).

Обновление через PPA (быстрая установка для Ubuntu)

Update: доступен PPA для Google Go. Чтобы добавить и установить из PPA, выполните:

sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang

Этот способ удобен для быстрого получения пакета без ручной сборки.

Тестирование установки

Создайте файл test.go с содержимым:

package main

import "fmt"

func main() {
    fmt.Printf("Hello, Go!\n")
}

В классической (исторической) схеме, где используются 8g/6g и 8l/6l, команды выглядели так (для 32‑бит):

# Компиляция (32‑бит)
8g test.go
# Линковка
8l test.8
# Запуск
./8.out

Для 64‑бит меняли 8 на 6. В современных релизах вы скорее будете использовать единый инструмент go:

# Современный способ (если установлен командный инструмент go)
go build -o test test.go
./test

Если всё в порядке, вы увидите:

Hello, Go!


Альтернативные подходы (когда сборка из исходников не нужна)

  • Установка из системного репозитория (apt/yum/dnf/pacman). Быстрее и удобнее для большинства пользователей.
  • Загрузка официального архива с сайта golang.org и распаковка в /usr/local/go — распространённый и поддерживаемый способ.
  • Использование snap/flatpak контейнеров (если доступны для вашего дистрибутива).

Когда стоит собирать из исходников:

  • Нужна особая конфигурация компилятора.
  • Хотите собрать старую ветку или специальный релиз.
  • Потребность в глубоких отладочных данных.

Когда сборка из исходников не стоит того:

  • Вы просто хотите писать на Go. Гораздо проще установить официальный бинарный релиз или пакет.

Мини‑методология установки (шаги)

  1. Оцените цель: нужен ли вам кастомный сборщик или достаточно бинарного пакета.
  2. Установите зависимости (gcc, make, mercurial/ git).
  3. Настройте переменные окружения и создайте каталоги.
  4. Скачайте исходники или пакет.
  5. Соберите ./all.bash (или распакуйте официальный tarball).
  6. Проверьте установку тестовой программой.

Роль‑ориентированные контрольные списки

Для разработчика:

  • Есть go/build или go toolchain в PATH.
  • Переменные GOPATH/GOROOT установлены при необходимости.
  • Создан тестовый файл и успешно собран проект.

Для системного администратора:

  • Проверены зависимости и пакетный менеджер.
  • Каталоги GOBIN и GOROOT с правами доступа.
  • Автоматизированный процесс обновления (apt, repo, cron) или инструкции для команды.

Для сборщика пакетов/мейнтейнера:

  • Документированы используемые флаги компиляции.
  • Проверены сочетаемость с системными библиотеками.
  • Написаны тесты сборки и unit‑тесты для встроенных инструментов.

Советы по совместимости и миграции

  • 32‑ и 64‑бит: сначала определитесь с архитектурой (GOARCH). На современных серверах чаще используется amd64.
  • Новая модель работы: современные версии Go используют утилиту go, а не набор 6g/8g и 6l/8l. При миграции проверьте документацию текущего релиза.
  • Если у вас старые проекты, сохраняйте окружение (GOPATH) и используйте совместимые версии компилятора.

Критерии приёмки (проверки успешности установки)

  • go (или старые 6g/8g) запускаются без ошибок.
  • Тестовый бинарник запускается и выводит ожидаемую строку.
  • Бинарники установлены в каталог, прописанный в PATH.
  • Нет ошибок сборки в ./all.bash (при сборке из исходников).

Частые проблемы и как их решать

  • Ошибка: “command not found: hg” — установите Mercurial (sudo easy_install mercurial или пакет mercurial).
  • Ошибка: отсутствуют dev‑пакеты — установите build-essential и libc6-dev.
  • Проблемы с правами — убедитесь, что каталоги созданы и доступны текущему пользователю.
  • Несовместимость версий — используйте официальные бинарные релизы, если сборка не проходит.

Важно: если что‑то идёт не так, сначала перечитайте вывод сборщика полностью — он часто указывает на недостающий пакет или неверную переменную окружения.

Небольшой глоссарий

  • GOROOT — каталог, где находятся исходники и инструменты Go (корень установки).
  • GOBIN — каталог для бинарных файлов (пользовательские исполняемые файлы).
  • GOARCH — архитектура целевой платформы (amd64, 386 и т.д.).
  • GOOS — целевая операционная система (linux, windows, darwin и т.д.).

Короткое резюме

  • Сборка Go из исходников даёт контроль, но требует инструментов и времени.
  • Для большинства задач достаточно установить пакет или официальный tarball.
  • Проверьте переменные окружения, зависимости и выполните тестовую сборку.

Если вы хотите, я могу подготовить отдельное руководство по написанию и структурированию проектов на Go (модули, пакеты, go.mod и примеры).


Примечание: приведённые команды и пакеты ориентированы на распространённые дистрибутивы Linux; в вашей системе имена пакетов или менеджера могут отличаться. Перед выполнением операций с правами root проверьте команды и пути.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро