Установка Go на Ubuntu 20.04/22.04 - Пошаговая инструкция 2024 | AdminWiki

Установка Go на Ubuntu: Полное руководство для разработчиков и DevOps

18 декабря 2025 8 мин. чтения #devops #golang #linux #ubuntu #программирование #установка go
Содержание статьи

Если ты разработчик или DevOps-инженер, работающий с микросервисами, контейнерами или облачными приложениями, Go (Golang) — это must-have в твоем инструментарии. В этой статье я, как опытный DevOps ментор, покажу тебе несколько способов установки Go на Ubuntu, объясню тонкости настройки и помогу избежать типичных ошибок.

Зачем устанавливать Go на Ubuntu?

Go — это компилируемый язык программирования от Google, который стал стандартом для cloud-native разработки. Его основные преимущества:

  • Молниеносная компиляция
  • Простая конкурентность с goroutines
  • Статическая линковка (один бинарный файл)
  • Идеален для Docker-контейнеров
  • Используется в Kubernetes, Docker, Terraform
Совет ментора: Давай разберем установку Go как для локальной разработки, так и для production-серверов. Выбор метода зависит от твоих потребностей.

Подготовка системы Ubuntu

Перед установкой Go убедись, что твоя система Ubuntu обновлена:

bash
sudo apt update
sudo apt upgrade -y

Метод 1: Установка Go из официального архива (рекомендуется)

Этот метод дает полный контроль над версией и является стандартом в индустрии.

Шаг 1: Определение последней версии Go

Сначала проверим актуальную версию на официальном сайте:

bash
# Последняя стабильная версия (на момент написания)
LATEST_GO_VERSION="1.21.0"

# Или автоматически получаем версию (требуется curl и jq)
# LATEST_GO_VERSION=$(curl -s https://go.dev/VERSION?m=text | head -1)

Шаг 2: Скачивание и распаковка Go

bash
# Удаляем старую версию, если была
sudo rm -rf /usr/local/go

# Скачиваем архив
wget https://go.dev/dl/go${LATEST_GO_VERSION}.linux-amd64.tar.gz

# Распаковываем в /usr/local
sudo tar -C /usr/local -xzf go${LATEST_GO_VERSION}.linux-amd64.tar.gz

# Очищаем за собой
rm go${LATEST_GO_VERSION}.linux-amd64.tar.gz
Внимание: Замени linux-amd64 на linux-arm64, если используешь ARM-процессор (например, на Mac M1 или Raspberry Pi).

Шаг 3: Настройка переменных окружения

Теперь нужно добавить Go в PATH и настроить GOPATH:

bash
# Открываем файл конфигурации оболочки
# Для bash:
nano ~/.bashrc

# Для zsh:
# nano ~/.zshrc

Добавляем в конец файла:

bash
# Go configuration
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Применяем изменения:

bash
source ~/.bashrc
# или source ~/.zshrc

Метод 2: Установка через apt (для быстрого старта)

Самый простой способ, но версия может быть не самой свежей:

bash
sudo apt install golang-go -y
Важно: В Ubuntu репозиториях часто лежат устаревшие версии Go. Для production-среды используй Метод 1.

Метод 3: Установка через snap

Альтернативный способ с автоматическими обновлениями:

bash
sudo snap install go --classic

Проверка установки Go

Убедимся, что Go установлен корректно:

bash
# Проверяем версию
go version

# Проверяем окружение
go env

# Тестовый запуск
go run --version

Ожидаемый вывод для версии 1.21:

bash
go version go1.21.0 linux/amd64

Создание первого проекта на Go

Давай создадим простой "Hello World" чтобы проверить всю цепочку:

bash
# Создаем директорию проекта
mkdir -p ~/projects/hello-go
cd ~/projects/hello-go

# Инициализируем go модуль
go mod init hello-go

# Создаем main.go
cat > main.go << 'EOF'
package main

import "fmt"

func main() {
    fmt.Println("Hello, Ubuntu! Go установлен успешно!")
}
EOF

Запускаем программу:

bash
# Запуск напрямую
go run main.go

# Компиляция в бинарник
go build -o hello-app

# Запуск бинарника
./hello-app

Сравнение методов установки

Метод Преимущества Недостатки Когда использовать
Официальный архив • Актуальная версия
• Полный контроль
• Стандарт в индустрии
• Ручное обновление
• Больше шагов
Production, разработка
APT репозиторий • Один команда
• Интеграция с системой
• Устаревшая версия
• Меньше контроля
Быстрое тестирование
Snap пакет • Автообновления
• Изоляция
• Может быть медленнее
• Нестандартный путь
Desktop использование

Настройка рабочего окружения Go

Для комфортной работы настрой следующие инструменты:

  • GoLand или VS Code с плагином Go
  • gopls — Language Server Protocol для Go
  • delve — отладчик для Go
  • staticcheck — линтер
bash
# Установка полезных инструментов
go install golang.org/x/tools/gopls@latest
go install github.com/go-delve/delve/cmd/dlv@latest
go install honnef.co/go/tools/cmd/staticcheck@latest

Обновление Go до новой версии

Для обновления Go при установке через официальный архив:

bash
# 1. Удаляем старую версию
sudo rm -rf /usr/local/go

# 2. Скачиваем новую (см. Метод 1)
# 3. Проверяем, что все работает
go version
Важно: При обновлении мажорной версии (например, с 1.20 на 1.21) проверь обратную совместимость своих проектов.

Устранение распространенных проблем

Проблема: "go: command not found"

Решение:

bash
# Проверяем, установлен ли Go
ls /usr/local/go/bin/go

# Если файл существует, проверяем PATH
echo $PATH

# Перезагружаем shell или выполняем
source ~/.bashrc

Проблема: Permission denied

bash
# Даем права на выполнение
sudo chmod +x /usr/local/go/bin/go

# Или устанавливаем с правами sudo
sudo tar -C /usr/local -xzf go*.tar.gz

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

Какой метод установки Go лучше для production-сервера?

Для production всегда используй установку из официального архива (Метод 1). Это дает контроль над версией, позволяет легко откатываться и соответствует best practices в индустрии.

Нужно ли настраивать GOPATH в современных версиях Go?

Начиная с Go 1.11, GOPATH не обязателен благодаря Go Modules. Однако его настройка все еще рекомендуется для совместимости со старыми инструментами и библиотеками.

Как установить несколько версий Go на одном компьютере?

Используй инструменты вроде gvm (Go Version Manager) или asdf с плагином Go. Они позволяют переключаться между версиями:

bash
# Установка gvm
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

# Установка версии Go через gvm
gvm install go1.20
gvm use go1.20

Где хранятся скачанные Go модули?

По умолчанию в $GOPATH/pkg/mod. Если GOPATH не установлен, то в ~/go/pkg/mod. Можешь проверить командой go env GOMODCACHE.

Как полностью удалить Go с Ubuntu?

Для полного удаления:

bash
# Для установки из архива
sudo rm -rf /usr/local/go
rm -rf ~/go

# Удаляем из PATH (редактируем ~/.bashrc или ~/.zshrc)
# Для apt
sudo apt remove --purge golang-go -y

# Для snap
sudo snap remove go

Дальнейшие шаги после установки

Теперь, когда Go установлен, рекомендую:

  1. Изучить Go Modules для управления зависимостями
  2. Настроить CI/CD пайплайн для Go-проектов
  3. Освоить тестирование с помощью встроенного testing пакета
  4. Изучить популярные фреймворки: Gin для веба, Cobra для CLI
  5. Оптимизировать Docker-образы для Go-приложений (мультистейдж сборка)
Профессиональный совет: В production средах используй Docker с multi-stage builds для создания минимальных образов. Go идеально подходит для этого благодаря статической линковке.

Пример Dockerfile для Go-приложения

dockerfile
# Stage 1: Build
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o myapp .

# Stage 2: Runtime
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/myapp .
EXPOSE 8080
CMD ["./myapp"]

Заключение

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

Помни, что правильная установка — это только начало. Настройка окружения, изучение инструментов и best practices займет время, но результат того стоит. Go — это мощный инструмент в руках разработчика и DevOps-инженера, особенно в мире cloud-native приложений.

Теперь у тебя есть рабочая среда Go на Ubuntu. Время писать код! 🚀

Поделиться:
Сохранить гайд? В закладки браузера