Как исправить ошибку make: command not found в Ubuntu

Быстрые ссылки
- Что означает «make: command not found»
- Как исправить ошибку в Ubuntu
- Что такое утилита make
- Зачем это нужно, если я не программист
- Как установить make с помощью apt
- Что делать, если Bash всё ещё не видит make
- Альтернативы для других дистрибутивов
Краткое содержание
Чтобы устранить ошибку «make: command not found» на Ubuntu и производных, обычно достаточно установить пакет make. Для полноценной среды сборки целесообразно установить пакет build-essential, который включает make и компиляторы (gcc/g++). В редких случаях нужно исправить PATH или переместить бинарный файл в корректное место.
Что означает «make: command not found»
Если вы видите сообщение «make: command not found» на Ubuntu или другом дистрибутиве Linux, это значит, что команда make не установлена или недоступна в текущем PATH. В стандартной минимальной установке Ubuntu make обычно не включён.
Утилита
makeчасто используется при компиляции программ из исходников. Если вы запускаете make вручную или приложение вызывает make в фоне, Bash выдаст эту ошибку, когда не сможет найти исполняемый файл make.
Чтобы исправить проблему, достаточно установить make через менеджер пакетов apt. Ниже — пошаговые инструкции и рекомендации.
Как исправить ошибку в Ubuntu
Самый простой путь — установить сам пакет make:
sudo apt install makeОднако чаще полезнее установить полный набор инструментов разработки, который включает make, компиляторы и другие инструменты, необходимые для сборки программ:
sudo apt install build-essentialПакет build-essential гарантирует, что у вас будут доступны gcc, g++, make и другие утилиты. После установки команда make будет работать из терминала, и скрипты, зависящие от неё, смогут продолжить работу.
Важно: перед установкой рекомендуется обновить индекс пакетов:
sudo apt updateЧто такое утилита make
make — это инструмент автоматизации сборки, который читает инструкции из файла makefile и выполняет необходимые команды для трансформации исходников в исполняемые файлы. Кратко:
- make читает правила в makefile
- определяет, какие файлы нужно пересобрать (по сравнению с версиями на диске)
- запускает компиляторы и другие команды в нужном порядке
Почему это удобно: вместо множества длинных команд достаточно одной — make, а правила в makefile описывают зависимости и порядок сборки.
Однострочное определение: make — это исполнитель правил сборки, который экономит время и управляет зависимостями файлов проекта.
Зачем это нужно, если я не программист
Даже если вы не пишете код, make может понадобиться в нескольких случаях:
- Некоторые приложения распространяются только как исходный код и требуют сборки
- Для установки дополнительных модулей ядра или гостевых дополнений (например, VirtualBox Guest Additions) нужно собрать модули, и для этого нужен make
- Скрипты установки или сборки сторонних утилит могут вызывать make
Если вы используете виртуальные машины, контейнеры или компилируете расширения ядра, иметь базовый набор инструментов разработки полезно.
Как установить make с помощью apt
Шаги для установки на Ubuntu и похожих системах:
- Откройте терминал.
- Обновите индекс пакетов:
sudo apt update- Для быстрой установки только make выполните:
sudo apt install make- Чтобы получить полный набор инструментов сборки, выполните:
sudo apt install build-essential- Проверьте установку:
makeЕсли make установлен, он обычно ответит сообщением о том, что не указана цель или не найден makefile — это нормальное поведение и значит, что команда доступна.
Чтобы найти путь до бинарника и man-страниц, используйте:
whereis makeЧто делать, если Bash всё ещё не видит make
В редких случаях make установлен, но Bash не может его найти. Пробуем простые шаги от простого к сложному.
- Принудительная переустановка:
sudo apt install --reinstall make- Поиск исполняемого файла на диске:
find / -type f -name "make" | lessЭта команда ищет файлы с именем make по всей файловой системе и выводит результаты в less. В less можно найти слово make, нажав / затем make и Enter.

Если вы обнаружите, что бинарник установлен в необычном месте (например, /etc/make), можно переместить его в корректный путь:
sudo mv /etc/make /usr/binПосле этого команда make должна запускаться корректно.
- Проверьте переменную окружения PATH:
echo $PATHУбедитесь, что в PATH присутствуют директории вроде /usr/bin и /bin. Если нет, добавьте их в файл конфигурации оболочки (~/.profile, ~/.bashrc или системные файлы /etc/profile), затем перезапустите сессию.
Быстрая методика установки для администраторов
- Оцените: нужен ли только make или полный набор сборки.
- Выполните
sudo apt update. - Выполните
sudo apt install build-essentialдля гарантии наличия всех инструментов. - Проверьте
make --versionиwhereis make. - Если есть проблемы — переустановите пакет и проверьте PATH.
Альтернативы и ситуации, когда это не поможет
Когда установка make не решит проблему:
- Если вы используете контейнер или минимальный образ без сети, установка через apt невозможна — потребуется сборка/доставка пакетов в образ.
- Если проект использует другую систему сборки (CMake, Meson, SCons, Bazel), make может не потребоваться. Проверьте инструкции проекта.
- Если проблема в правах доступа к файлам, установка make не исправит ошибку; проверьте разрешения.
Альтернативные подходы:
- Использовать CMake или Meson: многие проекты предоставляют CMakeLists.txt или meson.build и могут быть собраны без make (CMake генерирует Makefile, Meson использует Ninja).
- Установить готовые бинары или пакеты .deb, если доступны.
- Использовать snap/flatpak/AppImage, чтобы избежать сборки на месте.
Руководство восстановления при проблемах
Короткий инцидент-ранбук (что делать шаг за шагом):
- Убедитесь, что есть сетевое соединение.
- Выполните
sudo apt update. - Выполните
sudo apt install --reinstall build-essential make. - Если apt возвращает ошибки: проверьте
/var/log/apt/term.logи/var/log/dpkg.log. - Найдите бинарник:
find / -type f -name "make" | less. - Если бинарник в неправильном месте — переместите в /usr/bin и установите правильные права (
chmod 755 /usr/bin/make). - Проверьте переменную PATH:
echo $PATH. - Перезапустите терминал, при необходимости выйдите из сессии и войдите заново.
Критерии приёмки
- Команда
makeвозвращает сообщение о наличии make или показывает доступную версию (make --version). whereis makeуказывает на корректный путь, например /usr/bin/make.- Сборка проекта, зависящая от make, успешно запускается.
Чек-листы по ролям
Для пользователя, который хочет установить make:
- [ ] Обновить индекс пакетов
sudo apt update - [ ] Установить
sudo apt install build-essential - [ ] Проверить
make --version
Для системного администратора:
- Убедиться, что репозитории apt доступны
- Проверить логи apt при ошибках
- Настроить прокси/сетевые правила, если apt не может подключаться
- Автоматизировать установку на несколько машин через Ansible/Salt
Для разработчика пакета:
- Предоставить инструкции для других сборочных систем (CMake, Meson)
- Публиковать бинарные релизы, чтобы пользователям не приходилось собирать из исходников
Совместимость и переносимость
Эти инструкции применимы к Debian и большинству его производных (Ubuntu, Linux Mint). Для других дистрибутивов используйте соответствующие команды:
- Fedora / RHEL-подобные:
sudo dnf groupinstall "Development Tools" "Development Libraries"- Arch Linux / Manjaro:
sudo pacman -S base-devel- openSUSE:
sudo zypper install -t pattern devel_C_C++Если вы работаете в ограниченной среде (контейнер, chroot), установите необходимые пакеты в образ или используйте уже собранные пакеты.
Ментальные модели и советы
- make автоматически определяет, что нужно пересобирать, сравнивая метки времени файлов — представьте make как «умную» команду, которая знает зависимости проекта.
- build-essential — это базовый набор инструментов; он экономит время администратора и минимизирует ошибки при сборке.
- Всегда сначала пробуйте установить пакеты из репозитория дистрибутива — это надежнее, чем собирать вручную.
Мини-методология для CI/CD
- В шаге сборки CI включите установку зависимостей:
apt-get update && apt-get install -y build-essential - Кешируйте слои (в Docker) перед установкой пакетов, чтобы сократить время сборки.
- Если возможны готовые артефакты, используйте их вместо сборки в CI.
Mermaid диаграмма принятия решения
flowchart TD
A[Нужен make?] -->|Да| B{Система Ubuntu/Debian?}
B -->|Да| C[Запустить sudo apt update && sudo apt install build-essential]
B -->|Нет| D[Подобрать пакет для дистрибутива]
A -->|Нет| E[Проверить, нужна ли другая система сборки]
E --> F[Использовать CMake/Meson/Ninja или готовые артефакты]1-строчный глоссарий
- make: инструмент для автоматизации сборки по правилам из makefile
- makefile: текстовый файл с правилами сборки
- build-essential: мета-пакет в Debian/Ubuntu с компиляторами и make
Безопасность и приватность
Установка пакетов из официальных репозиториев безопаснее, чем загрузка бинарников из непроверенных источников. Избегайте выполнения случайных скриптов с правами root. Если проект требует скачивания внешних исходников, проверьте их целостность и происхождение.
Краткий FAQ
Как проверить, что make установлен?
make --version
whereis makeМожно ли установить make без прав sudo?
- Предпочтительно иметь права администратора для установки системных пакетов. Без sudo можно собрать локальную версию make в домашней директории, но это сложнее и редко оправдано.
Что делать, если проект использует другую систему сборки?
- Следуйте инструкциям проекта: многие предлагают готовые инструкции для CMake, Meson или другие инструменты.
Итог
Установка make на Ubuntu обычно сводится к одной простой команде: sudo apt install build-essential. Это даёт не только make, но и весь базовый набор для сборки программ. В редких случаях потребуется переустановка, проверка PATH или перемещение бинарника в корректную директорию. Если вы регулярно работаете с исходниками или виртуальными машинами, наличие build-essential на машине значительно упрощает жизнь.
Важное примечание: если вы работаете в корпоративной или изолированной среде, согласуйте установку пакетов с администратором и используйте утверждённые репозитории.