Что означает ошибка 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, который содержит всё необходимое для компиляции.
- Откройте терминал и обновите кэш репозиториев:
sudo apt update - Запустите установку пакета:
sudo apt install build-essential - Подтвердите действие, нажав
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, проверьте, где находится бинарник и доступен ли он оболочке.
- Найдите реальный путь к файлу:
Ожидаемый результат:find /usr -name gcc -type f 2>/dev/null/usr/bin/gccили/usr/local/bin/gcc. - Если файл найден, добавьте его директорию в переменную среды. Откройте файл конфигурации оболочки:
nano ~/.bashrc - В конец файла добавьте строку:
export PATH="/usr/bin:$PATH" - Сохраните изменения (
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, чтобы исключить ситуации, когда обновление прервалось и зависимости остались в повреждённом состоянии.