Linux

Установка и настройка Go на Linux: пошаговое руководство

В этом гайде вы научитесь устанавливать и настраивать среду разработки Go на Linux с нуля. Мы разберём установку из репозитория и с официального сайта, настройку PATH и GOPATH, а также проверим работоспособность.

Обновлено 14 февраля 2026 г.
10-15 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 11+Fedora 35+Arch LinuxGo 1.21+

Введение / Зачем это нужно

Go (Golang) — современный компилируемый язык, созданный Google для эффективной разработки сетевых сервисов и утилит. Настройка среды разработки на Linux — обязательный первый шаг для работы с Go. После выполнения этого гайда у вас будет полностью рабочая среда: установлен компилятор, настроены пути и вы сможете создавать, собирать и запускать Go-проекты.

Вы получите:

  • Установленный компилятор go в терминале
  • Настроенные переменные окружения GOROOT, GOPATH, PATH
  • Возможность использовать go get, go build, go run
  • Готовую структуру для проектов (если настроите GOPATH)

Требования / Подготовка

Перед началом убедитесь, что:

  1. У вас есть доступ к терминалу Linux (Ubuntu, Debian, Fedora, Arch или другой).
  2. Установлены базовые утилиты: curl или wget, tar.
  3. Есть права sudo (если планируете установку в системные директории).
  4. Определите архитектуру вашей системы:
    uname -m
    
    • x86_64amd64
    • aarch64arm64

Шаг 1: Проверка наличия Go и архитектуры системы

Сначала проверим, не установлен ли уже Go, и определим архитектуру.

# Проверка установленного Go (если есть)
go version

# Определение архитектуры
uname -m

Если команда go version выводит версию (например, go version go1.20 linux/amd64), Go уже установлен. Вы можете перейти к Шагу 5 для проверки переменных окружения или удалить старую версию перед установкой новой.

Шаг 2: Выбор способа установки

Есть два основных варианта:

СпособПлюсыМинусыКогда выбирать
Через менеджер пакетов (apt, dnf, pacman)Просто, автоматически в PATH, обновления через системуВерсия часто не самая новаяДля быстрой установки, если актуальная версия не критична
С официального сайта (golang.org/dl)Последняя стабильная версия, контроль над расположениемТребует ручной настройки PATHДля разработки, когда нужны новые фичи или точная версия

Рекомендация: Если вы начинаете новый проект или хотите использовать Go Modules (современный стандарт), выбирайте установку с официального сайта.

Шаг 3: Установка через менеджер пакетов

Для Ubuntu/Debian:

# Обновление кэша пакетов
sudo apt update

# Установка Go
sudo apt install golang

# Проверка версии (должна быть, например, 1.18+ в современных репозиториях)
go version

Для Fedora/RHEL/CentOS:

sudo dnf install golang
go version

Для Arch Linux:

sudo pacman -S go
go version

Примечание: В некоторых дистрибутивах пакет называется golang или go. После установки через менеджер пакетов переменные окружения обычно настраиваются автоматически. Переходите к Шагу 5.

Шаг 4: Установка с официального сайта (ручная)

Этот способ даёт вам последнюю версию и полный контроль.

  1. Перейдите на страницу загрузок (можно сделать через терминал):
    # Для amd64
    wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
    
    # Для arm64
    wget https://go.dev/dl/go1.21.6.linux-arm64.tar.gz
    

    Актуальную версию уточните на golang.org/dl.
  2. Удалите старую версию (если была установлена в /usr/local/go):
    sudo rm -rf /usr/local/go
    
  3. Распакуйте архив в /usr/local (требует sudo):
    sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
    
  4. Убедитесь, что Go добавлен в PATH. Добавьте строки в ~/.bashrc (или ~/.zshrc для zsh):
    # Откройте файл в редакторе
    nano ~/.bashrc
    

    Добавьте в конец:
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOPATH/bin
    

    💡 Совет: Если вы не хотите устанавливать в системную директорию, распакуйте архив в ~/go или ~/local/go и укажите соответствующий GOROOT.

  5. Примените изменения:
    source ~/.bashrc
    

Шаг 5: Настройка переменных окружения (если не сделали ранее)

Даже при установке через менеджер пакетов стоит проверить/настроть GOPATH.

  1. Проверьте текущие переменные:
    go env
    
  2. Убедитесь, что GOPATH указан. Если вывод GOPATH="", добавьте в ~/.bashrc:
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOPATH/bin
    
  3. Создайте директорию для проектов (если её нет):
    mkdir -p $GOPATH/{src,bin,pkg}
    
  4. Перезагрузите оболочку:
    source ~/.bashrc
    

Шаг 6: Проверка результата

Выполните команды для полной проверки:

# 1. Проверка версии Go
go version
# Ожидаемый вывод: go version go1.21.6 linux/amd64

# 2. Проверка переменных окружения
go env GOROOT GOPATH PATH
# GOROOT должен указывать на /usr/local/go (или вашу директорию)
# GOPATH должен указывать на /home/ваш_пользователь/go

# 3. Простой тестовый проект
mkdir -p $GOPATH/src/hello
cat > $GOPATH/src/hello/main.go << 'EOF'
package main
import "fmt"
func main() {
    fmt.Println("Hello, FixPedia!")
}
EOF

# 4. Запуск
go run $GOPATH/src/hello/main.go
# Должен вывести: Hello, FixPedia!

# 5. Сборка бинарника
go build -o $GOPATH/bin/hello $GOPATH/src/hello/main.go
hello
# Должен вывести: Hello, FixPedia!

Если все шаги прошли успешно — среда готова к работе.

Возможные проблемы

go: command not found

Причина: Go не добавлен в PATH. Решение:

  1. Проверьте, что в ~/.bashrc (или ~/.zshrc) есть строка export PATH=$PATH:/usr/local/go/bin.
  2. Выполните source ~/.bashrc или перезайдите в терминал.

❌ Ошибка доступа при распаковке в /usr/local

Причина: Недостаточно прав. Решение: Используйте sudo для распаковки или установите Go в домашнюю директорию (~/go).

go env показывает пустой GOPATH

Причина: Переменная не задана. Решение: Добавьте export GOPATH=$HOME/go в ~/.bashrc и перезагрузите оболочку.

❌ Устаревшая версия в репозитории дистрибутива

Причина: Репозитории Linux часто содержат стабильные, но не самые свежие версии. Решение: Установите с официального сайта (см. Шаг 4).

❌ Конфликт версий Go

Причина: В системе несколько версий Go, и go указывает на нежелательную. Решение: Проверьте which go и ls -l $(which go). Удалите лишние версии или измените порядок в PATH.


Продвинутые настройки (опционально)

Настройка модулей (Go Modules)

Начиная с Go 1.11, модули — стандарт для управления зависимостями. Убедитесь, что включены:

go env -w GO111MODULE=on

Настройка прокси для модулей (если нужен доступ в РФ/Китай)

go env -w GOPROXY=https://goproxy.cn,direct

Автодополнение для bash/zsh

Установите плагин для автодополнения команд go:

# Для bash
go install golang.org/x/tools/cmd/godoc@latest
echo "source <(godoc -completion)" >> ~/.bashrc

Заключительная проверка

После настройки выполните полный цикл работы:

  1. Создайте новый модуль:
    mkdir ~/projects/myapp && cd ~/projects/myapp
    go mod init github.com/username/myapp
    
  2. Добавьте простой код:
    cat > main.go << 'EOF'
    package main
    import "fmt"
    func main() {
        fmt.Println("Go is ready!")
    }
    EOF
    
  3. Соберите и запустите:
    go build -o myapp .
    ./myapp
    

Если вы видите Go is ready!, — поздравляем, среда полностью работоспособна!

Что дальше?

  • Изучите официальный туториал
  • Настройте IDE (VS Code с расширением Go, Goland)
  • Освойте Go Modules для управления зависимостями

Часто задаваемые вопросы

Какую версию Go выбрать для установки?
Нужно ли использовать sudo при установке Go?
Что такое GOPATH и обязательно ли его настраивать?
Как обновить Go до новой версии?

Полезное

Проверка наличия Go и архитектуры системы
Выбор способа установки
Установка через менеджер пакетов (apt/dnf/pacman)
Установка с официального сайта (ручная)
Настройка переменных окружения
Проверка установки