Как установить Go (Google Go) на Linux
Краткое введение
Go — компилируемый язык программирования, созданный внутри Google. Его цель — быстрая компиляция больших проектов и встроенная поддержка конкурентности. Исторически в составе инструментов были компиляторы 6g (для 64‑битных бинарников) и 8g (для 32‑битных), но в современных релизах используется единый инструмент go и готовые бинарные сборки.
Важно: это руководство фокусируется на шагах, необходимых для получения и компиляции компилятора Go на Linux. Здесь не рассматривается разработка на Go. Если будет интерес — можно подготовить отдельный урок по кодированию.
Обзор процесса
- Подготовить систему: установить зависимости и переменные среды.
- Получить исходный код Go (через Mercurial в старых инструкциях) или использовать официальные бинарные пакеты/репозитории.
- Собрать компилятор (в старой модели — с помощью gcc, затем запускать ./all.bash).
- Проверить установку простым тестом “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. Гораздо проще установить официальный бинарный релиз или пакет.
Мини‑методология установки (шаги)
- Оцените цель: нужен ли вам кастомный сборщик или достаточно бинарного пакета.
- Установите зависимости (gcc, make, mercurial/ git).
- Настройте переменные окружения и создайте каталоги.
- Скачайте исходники или пакет.
- Соберите ./all.bash (или распакуйте официальный tarball).
- Проверьте установку тестовой программой.
Роль‑ориентированные контрольные списки
Для разработчика:
- Есть 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 проверьте команды и пути.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента