Установка Go на CentOS

    Команда Simple-Server
    03.06.2026
    7 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Изначально CentOS базируется на коммерческом дистрибутиве Red Hat Enterprise Linux (RHEL), однако отличается от него тем, что распространяется как свободное ПО и не имеет официальной поддержки.

    По этой причине иногда принято считать, что RHEL используют как корпоративный продукт в крупных компаниях, а CentOS предпочитают небольшие команды разработчиков.

    За все время существования CentOS было выпущено 9 версий, последние из которых представляли собой отдельную ветку — CentOS Stream.

    Дело в том, что когда компания выпустила 8 версию CentOS, большинство разработчиков все еще использовали 7 версию. Примерно в этот же момент Red Hat начала процесс слияния с IBM, отчего решила прекратить поддержку 8 версии в 2021 году. Тем не менее, из-за повсеместного использования 7 версии Red Hat решил продолжить выпускать критические обновления до 2024 года.

    Именно за 8 версией 2019 году последовала CentOS Stream, которая выпускается по rolling-release модели. Иными словами, обновления для этого дистрибутива выпускаются регулярно и непрерывно.

    Последняя версия CentOS по прежнему имеет номер 9 (то есть следующая версия после 8), но вместо приписки «Linux» указывается «Stream». При этом Stream ветка есть и у 8 версии CentOS.

    В этой статье разберём установку языка программирования Golang на самые поздние версии CentOS — 8 и 9.

    1. Удаление старых версий Golang

    Во избежание возможных проблем при установке необходимо убедиться, что Golang отсутствует в системе. Есть несколько вариантов это сделать.

    Можно попробовать запросить версию Go через специальную команду:

    Если Go действительно уже установлен, то в консоли появится соответствующее сообщение с версией Golang.

    Другой вариант, который может также помочь при удалении, — узнать местонахождение каталога с Go, который впоследствии нужно будет удалить:

    Если Golang есть в системе, то в консоле появится адрес директории.

    Если Golang действительно уже установлен, тогда его нужно удалить:

    Если при использовании команды which был выведен другой адрес директории, тогда при удалении нужно указать именно его. Однако как правило это /usr/local/go.

    Сама команда rm выполняет удаление некоторой директории или файла. А флаг -rf указывает на рекурсивно-принудительный тип удаления.

    • r означает рекурсивный (recursive) — удаляется указанная папка, все ее подпапки, подпапки подпапок и т.д.
    • f означает принудительный (force) — никакие внешние состояния или переменные не смогут помешать удалению.

    Чтобы удалить упоминание Go в переменных среды, необходимо найти один из следующих файлов:

    Когда файл будет найден, в нем нужно очистить строчки, указывающие на директорию Go. Обычно это установка переменных GOROOT и PATH:

    export PATH=$PATH:/usr/local/go/bin export GOROOT=$HOME/go1.X export PATH=$PATH:$GOROOT/bin

    Если какие либо из указанных выше строк присутствуют в файле, они должны быть удалены.

    Теперь можно перейти к скачиванию Golang.

    Компилятор Golang загружается со специальной страницы на официальном сайте языка.

    Для загрузки можно использовать 2 утилиты: wget и curl. Мы воспользуемся первым вариантом, напрямую указав ссылку на нужный нам архив:

    wget https://dl.google.com/go/go1.21.3.linux-amd64.tar.gz

    Обратите внимание, что в адресной строке указана точная версия Go. Узнать номер последней версии можно через графический интерфейс (через браузер) на странице загрузки — в том разделе, где размещена ссылка для скачивания архива для операционных систем на базе ядра Linux.

    Команда wget запускает специальную утилиту Linux, занимающуюся загрузкой файлов из интернета через терминал командной строки. Она работает со всеми основными протоколами — HTTP, HTTPS и FTP.

    После выполнения этой команды будет загружен соответствующий архив go1.21.3.linux-amd64.tar.gz, либо с указанием более поздней версии.

    После загрузки архива проверьте его контрольную сумму и убедитесь, что хэш, выведенный в командой строке, соответствует хешу, указанному на странице загрузки:

    sha256sum go1.21.3.linux-amd64.tar.gz

    Обратите внимание, что расширение .tar.gz указывает на формат сжатого архивного файла, который представляет собой комбинацию двух других форматов архивов:

    • TAR. Используется для хранения нескольких файлов в одном архиве
    • GZIP. Используется для сжатия данных в архиве с целью уменьшения его размера

    Это означает, что после загрузки архива его нужно будет извлечь.

    Для извлечения мы будем использовать специальнную утилиту tar, которая предназначена для выполнения различных манипуляций с архивами:

    sudo tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz

    При извлечении мы указываем стандартную директорию /usr/local. Именно в нее будет помещен компилятор Golang.

    При этом команду извлечения необходимо запускать от имени пользователя root или любого другого пользователя, наделенного правами sudo.

    Можно считать, что Go уже установлен в системе. Однако теперь ей нужно сообщить о том, в каком конкретном месте расположен компилятор. Для этого мы дополним переменные среды.

    4. Установка переменных среды

    Чтобы терминал командной строки знал, где искать исполняемые файлы Go, когда мы компилируем программу, нужно указать адрес каталога Golang в переменных среды.

    Для этого мы откроем файл /etc/profile и добавим туда следующие строки:

    export PATH=$PATH:/usr/local/go/bin export GOROOT=/usr/local/go export GOPATH=$HOME/Documents/go

    Мы установили 3 переменные среды:

    • PATH. Помогает командной строке найти бинарные файлы компилятора
    • GOROOT. Указывает на директорию, где установлен Go
    • GOPATH. Содержит адрес рабочей директории

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

    По сути, на данном этапе это все — Golang был установлен на CentOS.

    На всякий случай мы проверим, действительно ли Golang установлен в системе и есть ли к нему доступ из терминала консоли. Для этого мы напишем команду, выводящую версию компилятора:

    Если в консоли появилась соответствующая запись с номером версии Golang, значит, все впорядке.

    6. Компиляция простой программы

    Давайте создадим в домашнем каталоге новый файл:

    После чего наполним его следующим содержимым:

    package main import "fmt" func main() { fmt.Println("Привет, Мир!") // ВЫВОД: Привет, Мир! }

    Теперь запустим нашу программу с помощью команды run:

    Чтобы создать полноценный исполняемый файл, нам потребуется уже другая команда:

    Если не указывать в качестве аргумента имя файла, то команда скомпилирует main.go.

    Тем не менее, вы можете явно указывать название файла, который нужно собрать в конечный «билд»:

    Без явного указания имени файла в команде сборки может возникнуть ошибка, связанная с особенностями работы системы модулей Go:

    go: go.mod file not found in current directory or any parent directory; see 'go help modules'

    Есть два пути решения. Либо вручную инициализировать go.mod файл в рабочей директории проекта, указав имя исходного файла:

    Либо изменить значение переменной среды GO111MODULE:

    go env -w GO111MODULE=auto go env -w GO111MODULE=off

    Сама по себе сборка в исполняемый файл добавляет системно зависимый вспомогательный код, необходимый для выполнения приложения на любом компьютере с той же системной архитектурой.

    Так как CentOS построена на базе ядра Linux, установка Golang представляет собой одинаковый процесс для всех последних версий операционной системы — 7, 8, 9 (Stream).

    Более подробно ознакомиться с синтаксисом языка можно в документации Golang на официальном сайте языка.


    Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация? Посмотрите все доступные тарифы

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны