Исправление ошибки «make: command not found» в Ubuntu

О чём эта статья
Здесь пошагово описано, как диагностировать и исправить ошибку «make: command not found» в Ubuntu. Подходит для локальных рабочих станций и серверов. Включены команды для проверки, варианты установки, советы по PATH, альтернативные подходы и чек-листы для разработчика и системного администратора.
Быстрые шаги (summary)
- Проверить, установлен ли make: ls /usr/bin/make и /usr/bin/make –version
- Установить make: sudo apt update && sudo apt install -y make
- Если нужно — установить build-essential: sudo apt install build-essential
- Если make есть, но не запускается — проверить PATH и права
- При проблемах — переустановить: sudo apt install –reinstall make
Важно: команды ниже требуют прав суперпользователя (sudo) и подключения к интернету для apt.
1. Проверка наличия make на системе
Первый шаг — убедиться, что бинарный файл make существует и исполняется.
Проверьте наличие файла:
ls -l /usr/bin/makeВыполните make по абсолютному пути, чтобы посмотреть версию:
/usr/bin/make --versionЕсли файл отсутствует, команда выдаст «No such file or directory» или похожую ошибку. Если файл есть, но /usr/bin/make –version не запускается, проверьте права и зависимости.
Дополнительно проверьте, как shell находит команду:
which make
type -a makeif which ничего не выводит, значит команда не находится в $PATH.
2. Установка make через APT
Обычно make входит в стандартные репозитории Ubuntu. Обновите индексы пакетов и установите make:
sudo apt update && sudo apt upgrade -y
sudo apt install -y makeЕсли пакет make не решает проблему (например, отсутствуют компиляторы и заголовки), установите сборочный набор пакетов:
sudo apt install -y build-essentialПакет build-essential содержит gcc, g++, make и другие инструменты, необходимые для сборки большинства программ из исходников.
Если установка проходит успешно, проверьте версию снова:
make --version3. Что делать, если make установлен, но команда не найдена
Иногда бинарник установлен, но shell не может его найти — проблема в переменной окружения PATH или в правах доступа.
Проверьте PATH:
echo "$PATH"Убедитесь, что /usr/bin и /usr/local/bin присутствуют в PATH. Если бинарник находится в нестандартном месте, например /opt/custom/bin, добавьте путь временно и затем в профиль пользователя:
export PATH="$PATH:/opt/custom/bin"Чтобы добавить навсегда, добавьте строку в ~/.profile или ~/.bashrc:
# в конце файла ~/.profile
export PATH="$PATH:/opt/custom/bin"Если бинарник есть, но права неверны, исправьте их:
sudo chmod +x /usr/bin/make
sudo chown root:root /usr/bin/makeЕсли кажется, что пакет повреждён, выполните переустановку:
sudo apt install --reinstall make4. Диагностика проблем с APT и пакетами
Если apt не может установить make, проверьте:
apt-cache policy make
sudo apt update
sudo apt install -fОшибки сети, прокси или повреждённые индексы apt иногда мешают установке. При отсутствии доступа к репозиториям можно скачать .deb вручную с доверенного зеркала и установить через dpkg:
sudo dpkg -i make_*.deb
sudo apt-get install -fАльтернативные подходы и обходные пути
- Использовать предварительно собранные пакеты (deb, snap, flatpak) вместо сборки из исходников.
- Запустить сборку внутри контейнера (Docker) с нужными инструментами, чтобы не менять хост-систему.
- Если проект поддерживает другие системы сборки (CMake, Meson), использовать их, если make отсутствует в окружении.
Когда перечисленные шаги не помогают
Контейнеры/минимальные образы: многие минимальные образы (alpine, busybox-based) не содержат apt и make; в таких случаях используйте менеджер пакетов образа или переключитесь на образ Ubuntu с предустановленными инструментами.
Ограниченные среды: в некоторых хостингах и CI-пайплайнах инструменты сборки по умолчанию отключены. Проверьте документацию CI/хостинга.
Если проблема связана с повреждёнными пакетами или конфликтующими зависимостями, потребуются дополнительные шаги по очистке кеша apt и диагностике зависимостей.
Мини-методология: как быстро диагностировать проблему
- Проверить физическое наличие бинарника: ls /usr/bin/make
- Запустить по абсолютному пути: /usr/bin/make –version
- Проверить, как shell находит команду: which make; type -a make
- Если отсутствует — установить make или build-essential через apt
- Если установлен, но не виден — проверить PATH и права
- При ошибках apt — проверить сеть, зеркала и выполнить sudo apt install -f
Диагностическое дерево (decision tree)
flowchart TD
A[Запущена команда make?] --> B{Есть /usr/bin/make}
B -- Да --> C{make запускается по абсолютному пути}
B -- Нет --> D[Установите make: sudo apt install -y make]
C -- Да --> E{which make возвращает путь}
C -- Нет --> F[Проверить права/зависимости; sudo apt install --reinstall make]
E -- Да --> G[Проблема решена]
E -- Нет --> H[Проверьте PATH; export PATH=...]
H --> G
F --> GЧек-листы по ролям
Для разработчика:
- Убедиться, что исходники подходят для запуска с make (наличие Makefile).
- Проверить, установлен ли make: make –version.
- Если нет — попросить инструкции по установке или воспользоваться контейнером с готовой средой.
Для системного администратора:
- Проверить наличие и целостность пакета make и build-essential.
- Проверить конфигурации PATH для system users и сервисов (systemd, cron).
- Настроить mirror/репозиторий и доступ в интернет для apt при необходимости.
Критерии приёмки
- make –version возвращает версию без ошибок.
- Команда make успешно запускает сборку тестового Makefile.
- Нет ошибок «command not found» для пользователя или сервиса, которому нужна эта команда.
Краткий справочный блок (фактбокс)
- make — стандартный инструмент сборки в Unix-подобных ОС.
- В Ubuntu make обычно доступен в репозитории main и входит в build-essential.
- build-essential содержит компиляторы и вспомогательные библиотеки, часто требуемые для сборки ПО.
Тесты и приёмочные проверки
- Тест 1: После установки выполнить make –version — ожидается вывод версии.
- Тест 2: Создать простой Makefile и запустить make — ожидается успешная сборка.
- Тест 3: Войти под тем же пользователем, что и сервис, и убедиться, что which make возвращает путь.
Короткое резюме
Ошибка «make: command not found» обычно означает, что пакет make не установлен или его бинарник не находится в переменной окружения PATH. Самый распространённый и безопасный путь решения — установить make или build-essential через apt и при необходимости поправить PATH или выполнить переустановку.
Последовательные шаги: проверить наличие бинарника, установить пакет, проверить PATH, переустановить при проблемах. Если вы работаете в ограничённой среде (контейнер, CI), рассмотрите использование образа/контейнера с предустановленными инструментами.
Ключевые команды для копирования:
sudo apt update && sudo apt upgrade -y
sudo apt install -y make
sudo apt install -y build-essential
sudo apt install --reinstall make
ls -l /usr/bin/make
/usr/bin/make --version
which make
echo "$PATH"Похожие материалы
Обновить Linux на Chromebook через терминал
Анализ использования диска в Ubuntu с ncdu
Отключить уведомления на Android — режим Не беспокоить
Как безопасно купить б/у MacBook
Планшет Android как дисплей для Raspberry Pi