Установка Go (Golang) на Linux

Кому полезно
- Разработчикам, которые хотят начать писать на Go на Linux.
- Системным администраторам, которым нужно развернуть среду сборки.
Что потребуется
Коротко: доступ в терминал с правами sudo и подключение к интернету для загрузки пакетов.
Предварительные шаги — обновление системы
Перед установкой убедитесь, что система обновлена.
На дистрибутивах на базе Ubuntu и Debian:
sudo apt update && sudo apt upgrade -yНа Arch Linux и производных:
sudo pacman -SyuНа RHEL, CentOS Stream и Fedora:
sudo dnf upgradeПосле завершения обновления вы готовы выбрать способ установки.
Способ 1 — установка через пакетный менеджер (быстро и просто)
Этот способ подходит, если вам достаточно версии Go, доступной в репозиториях вашей ОС.
Ubuntu / Debian:
sudo apt install golang -yArch Linux:
sudo pacman -S golang --noconfirmRHEL / Fedora:
sudo dnf install golang -yПлюсы: быстро, интегрируется с системой обновлений. Минусы: версия в репозиториях может отставать от официального релиза.
Способ 2 — ручная установка из официального архива (рекомендуется для точного контроля версий)
- Скачайте архив с официального сайта. В примере указан конкретный релиз; замените имя файла на актуальную версию при необходимости:
wget https://go.dev/dl/go1.20.1.linux-amd64.tar.gz- Распакуйте архив в /usr/local (обычная рекомендация от разработчиков Go):
sudo tar -C /usr/local -xvf go1.20.1.linux-amd64.tar.gz- Временная установка переменной PATH (работает в текущем сеансе):
export PATH=$PATH:/usr/local/go/bin- Чтобы изменение сохранялось между сеансами, добавьте в профиль оболочки (пример для bash):
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
source ~/.profileАльтернативный метод для системного уровня (требуется sudo): создать файл /etc/profile.d/go.sh с содержимым:
sudo tee /etc/profile.d/go.sh > /dev/null <<'EOF'
export PATH=$PATH:/usr/local/go/bin
EOF
sudo chmod 644 /etc/profile.d/go.sh- Проверьте установку:
go version
which goОжидается вывод вида: go version go1.20.1 linux/amd64
Пример простого приложения “Hello, World”
Создайте файл hello.go:
package main
import "fmt"
func main() {
fmt.Println("Hello, Go on Linux!")
}Запустите:
go run hello.goИли соберите бинарь:
go build -o hello
./helloУдаление Go
Если вы устанавливали через пакетный менеджер, удалите тем же инструментом:
Ubuntu / Debian:
sudo apt autoremove golang -yArch Linux:
sudo pacman -R golang --noconfirmRHEL / Fedora:
sudo dnf remove golang -yЕсли Go был установлен вручную, просто удалите каталог установки и очистите переменные PATH:
sudo rm -rf /usr/local/goЗатем удалите строки, добавленные в ~/.profile или /etc/profile.d/go.sh, и перезагрузите сессию терминала.
Критерии приёмки
- Команда
go versionвыводит ожидаемую версию. which goвозвращает путь/usr/local/go/bin/go(при ручной установке) или путь в системных каталогах при установке пакетом.- Пример
go run hello.goпечатает ожидаемую строку.
Рекомендации по обновлению и ролям
Мини-методика обновления Go (быстро):
- Проверить текущую версию:
go version. - Сохранить важные проекты (git push / бэкап).
- Если установлен пакетный менеджер — проверить, доступна ли новая версия там. Если нет и нужна последняя стабильная версия — скачать официальный архив и заменить /usr/local/go.
- Проверить модули проекта:
go list -m allи запустить тесты.
Контрольный список для разработчика:
- [ ] Установлена версия Go (проверить
go version). - [ ] PATH настроен и доступен
goв терминале. - Модули проекта и go.mod корректны.
- [ ] Минимальные тесты проходят (
go test ./...).
Контрольный список для инженера по развёртыванию:
- Установка автоматизирована в скрипте/Ansible/PKG.
- Файл /etc/profile.d/go.sh настроен для всех пользователей, если нужно.
- Документированы шаги отката.
Когда ручная установка лучше, а когда пакеты удобнее
- Выбирайте пакетный менеджер, если вам важна простота и автоматические обновления вместе с системой. Это удобно для серверов, где не нужна последняя версия Go.
- Ручная установка подходит, если вам нужна точная версия Go (например, для CI/CD), или если репозиторий дистрибутива содержит устаревшую версию.
Частые ошибки и как их исправить
- Проблема:
go: command not found— скорее всего PATH не добавлен в текущий сеанс. Решение:source ~/.profileили добавить экспорт в ~/.bashrc и перезапустить терминал. - Проблема: версия, отличная от ожидаемой — проверьте, не установлен ли параллельно golang из репозиториев (удалите пакет или скорректируйте PATH так, чтобы /usr/local/go/bin был раньше).
Небольшой глоссарий (1 строка на термин)
- Go / Golang — компилируемый язык программирования от Google.
- GOPATH — устаревающая переменная для рабочего пространства, сейчас обычно используют модули Go.
- go.mod — файл управления зависимостями модуля Go.
Краткое резюме
Установка Go на Linux — тривиальная задача: для большинства сценариев достаточно установить пакет из репозитория дистрибутива. Если нужна точная или последняя версия, скачайте официальный tar-архив и распакуйте в /usr/local/go, затем добавьте /usr/local/go/bin в PATH. Всегда проверяйте установку командой go version и запускайте простое приложение для подтверждения работоспособности.
Важно: выбор метода зависит от требований к версии и политике обновлений в вашей организации.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента