Linux gcc: commandСредняя

Исправляем gcc: command not found в Linux за 5 минут

Ошибка `gcc: command not found` возникает при попытке скомпилировать программу на C/C++ без установленного компилятора. Вы узнаете, как быстро проверить наличие пакета и установить его в популярных дистрибутивах Linux.

Обновлено 6 апреля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 11+Fedora 36+Arch Linux

Что означает ошибка gcc: command not found

Сообщение bash: gcc: command not found (или просто gcc: command not found в других оболочках) появляется, когда вы пытаетесь запустить команду gcc для компиляции кода на C или C++, но терминал не может найти исполняемый файл в стандартных директориях системы. Обычно это происходит при первом запуске gcc после установки чистого дистрибутива Linux или при работе в минимальном окружении (Docker, WSL, серверные сборки). Система не падает, но процесс сборки прерывается мгновенно.

Причины возникновения

  • Компилятор GCC не установлен. Минимальные образы Linux часто не включают инструменты разработки для экономии места.
  • Отсутствуют зависимости сборки. Пакет gcc установлен, но не хватает make, g++ или библиотек заголовков, из-за чего менеджер пакетов мог откатить установку.
  • Повреждена переменная PATH. Файл компилятора физически находится в /usr/bin/gcc, но оболочка ищет его в других директориях.
  • Сессия терминала не обновлена. Установка прошла успешно, но текущая оболочка кэширует старые пути и не видит новые бинарники.

Способы решения

Способ 1: Установка через метапакет (Ubuntu/Debian)

Это самый надёжный метод для Debian-подобных систем. Вместо отдельного пакета gcc мы установим build-essential, который содержит всё необходимое для компиляции.

  1. Откройте терминал и обновите кэш репозиториев:
    sudo apt update
    
  2. Запустите установку пакета:
    sudo apt install build-essential
    
  3. Подтвердите действие, нажав Y, и дождитесь завершения загрузки.

💡 Совет: Если вы работаете с C++, дополнительно убедитесь, что установлен g++. В Ubuntu он входит в build-essential, но в старых версиях Debian может потребоваться sudo apt install g++.

Способ 2: Использование нативных менеджеров (Fedora/Arch)

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

  • Fedora/RHEL/CentOS Stream:
    sudo dnf check-update
    sudo dnf groupinstall "Development Tools"
    
  • Arch Linux/Manjaro:
    sudo pacman -Syu base-devel
    

После выполнения команд система автоматически разрешит зависимости и установит GCC, make, pkg-config и вспомогательные утилиты.

Способ 3: Восстановление путей в переменной PATH

Если установка прошла без ошибок, но терминал всё равно не видит gcc, проверьте, где находится бинарник и доступен ли он оболочке.

  1. Найдите реальный путь к файлу:
    find /usr -name gcc -type f 2>/dev/null
    
    Ожидаемый результат: /usr/bin/gcc или /usr/local/bin/gcc.
  2. Если файл найден, добавьте его директорию в переменную среды. Откройте файл конфигурации оболочки:
    nano ~/.bashrc
    
  3. В конец файла добавьте строку:
    export PATH="/usr/bin:$PATH"
    
  4. Сохраните изменения (Ctrl+O, Enter, Ctrl+X) и примените их без перезагрузки:
    source ~/.bashrc
    

⚠️ Важно: Не меняйте системные пути глобально в /etc/environment, если не уверены в последствиях. Редактирование ~/.bashrc или ~/.zshrc безопасно для вашего пользователя.

Профилактика

Чтобы ошибка не возвращалась при обновлении системы или развёртывании новых проектов, придерживайтесь простых правил. Всегда используйте пакетные менеджеры для установки инструментов разработки — никогда не копируйте бинарные файлы вручную в /usr/local/bin. Если вы работаете в контейнерах или CI/CD-пайплайнах, явно указывайте установку build-essential или gcc в Dockerfile на этапе формирования образа. Периодически проверяйте целостность пакетов командой apt --fix-broken install или dnf check, чтобы исключить ситуации, когда обновление прервалось и зависимости остались в повреждённом состоянии.

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

Почему после установки терминал всё ещё пишет, что gcc не найден?
Чем `build-essential` отличается от простого пакета `gcc`?
Можно ли использовать clang вместо gcc?
Нужно ли перезагружать компьютер после установки компилятора?

Полезное

Проверьте наличие компилятора
Обновите списки пакетов
Установите компилятор и утилиты
Проверьте корректность установки

Эта статья помогла вам решить проблему?