Гид по технологиям

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

7 min read Linux Обновлено 21 Dec 2025
Исправление ошибки make: command not found в Ubuntu
Исправление ошибки make: command not found в Ubuntu

Клавиатура Das Keyboard 6 Professional — подсвеченные клавиши, крупный план

Быстрые ссылки

  • Что означает «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 и похожих системах:

  1. Откройте терминал.
  2. Обновите индекс пакетов:
sudo apt update
  1. Для быстрой установки только make выполните:
sudo apt install make
  1. Чтобы получить полный набор инструментов сборки, выполните:
sudo apt install build-essential
  1. Проверьте установку:
make

Если make установлен, он обычно ответит сообщением о том, что не указана цель или не найден makefile — это нормальное поведение и значит, что команда доступна.

Чтобы найти путь до бинарника и man-страниц, используйте:

whereis make

Что делать, если Bash всё ещё не видит make

В редких случаях make установлен, но Bash не может его найти. Пробуем простые шаги от простого к сложному.

  1. Принудительная переустановка:
sudo apt install --reinstall make
  1. Поиск исполняемого файла на диске:
find / -type f -name "make" | less

Эта команда ищет файлы с именем make по всей файловой системе и выводит результаты в less. В less можно найти слово make, нажав / затем make и Enter.

Результаты поиска make в less, показаны найденные пути

Если вы обнаружите, что бинарник установлен в необычном месте (например, /etc/make), можно переместить его в корректный путь:

sudo mv /etc/make /usr/bin

После этого команда make должна запускаться корректно.

  1. Проверьте переменную окружения PATH:
echo $PATH

Убедитесь, что в PATH присутствуют директории вроде /usr/bin и /bin. Если нет, добавьте их в файл конфигурации оболочки (~/.profile, ~/.bashrc или системные файлы /etc/profile), затем перезапустите сессию.

Быстрая методика установки для администраторов

  1. Оцените: нужен ли только make или полный набор сборки.
  2. Выполните sudo apt update.
  3. Выполните sudo apt install build-essential для гарантии наличия всех инструментов.
  4. Проверьте make --version и whereis make.
  5. Если есть проблемы — переустановите пакет и проверьте PATH.

Альтернативы и ситуации, когда это не поможет

Когда установка make не решит проблему:

  • Если вы используете контейнер или минимальный образ без сети, установка через apt невозможна — потребуется сборка/доставка пакетов в образ.
  • Если проект использует другую систему сборки (CMake, Meson, SCons, Bazel), make может не потребоваться. Проверьте инструкции проекта.
  • Если проблема в правах доступа к файлам, установка make не исправит ошибку; проверьте разрешения.

Альтернативные подходы:

  • Использовать CMake или Meson: многие проекты предоставляют CMakeLists.txt или meson.build и могут быть собраны без make (CMake генерирует Makefile, Meson использует Ninja).
  • Установить готовые бинары или пакеты .deb, если доступны.
  • Использовать snap/flatpak/AppImage, чтобы избежать сборки на месте.

Руководство восстановления при проблемах

Короткий инцидент-ранбук (что делать шаг за шагом):

  1. Убедитесь, что есть сетевое соединение.
  2. Выполните sudo apt update.
  3. Выполните sudo apt install --reinstall build-essential make.
  4. Если apt возвращает ошибки: проверьте /var/log/apt/term.log и /var/log/dpkg.log.
  5. Найдите бинарник: find / -type f -name "make" | less.
  6. Если бинарник в неправильном месте — переместите в /usr/bin и установите правильные права (chmod 755 /usr/bin/make).
  7. Проверьте переменную PATH: echo $PATH.
  8. Перезапустите терминал, при необходимости выйдите из сессии и войдите заново.

Критерии приёмки

  • Команда 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

  1. В шаге сборки CI включите установку зависимостей: apt-get update && apt-get install -y build-essential
  2. Кешируйте слои (в Docker) перед установкой пакетов, чтобы сократить время сборки.
  3. Если возможны готовые артефакты, используйте их вместо сборки в 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 на машине значительно упрощает жизнь.

Важное примечание: если вы работаете в корпоративной или изолированной среде, согласуйте установку пакетов с администратором и используйте утверждённые репозитории.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как изменить фон в браузере Brave
Руководство

Как изменить фон в браузере Brave

Язык отдельных приложений на iPhone и Mac
Руководство

Язык отдельных приложений на iPhone и Mac

Как заблокировать сабреддиты на Reddit
Инструкции

Как заблокировать сабреддиты на Reddit

Material You: тема Android по обоям
Android.

Material You: тема Android по обоям

Удаление белого фона в Adobe Illustrator
Дизайн

Удаление белого фона в Adobe Illustrator

Включение Universal Control в macOS Monterey
macOS

Включение Universal Control в macOS Monterey