Утилита make в Linux используется для сборки и компиляции программ из исходных файлов. Инструкции о компиляции утилита берет из файла makefile. В некоторых дистрибутивах Linux утилита make не установлена по умолчанию (например, в Linux CentOS 8), поэтому при запуске команды сборки, вы увидеть ошибку:
bash: make: command not found
Или
bash: /usr/bin/make: No such file or directory
В консоли Ubuntu появляется уведомление:
The program 'make' is currently not installed. You can install it by typing: sudo apt install make
Проверьте, что команда make установлена и путь к ней есть в PATH
В первую очередь проверьте, что команда make установлена в вашем дистрибутиве Linux и путь к ее директории указан в переменной окружения PATH.В большинстве случае файл make должен находится в директории /usr/bin или /usr/local/bin. Проверьте, есть ли исполняемый бинарный файл make в этих каталогах:
$ ls /usr/bin/make
Если вы нашли исполняемый файл make в этой директории, проверьте что вы можете запустить его с абсолютным путем:
$ /usr/bin/make –version
GNU Make 3.82 Built for x86_64-redhat-linux-gnu Copyright (C) 2010 Free Software Foundation, Inc.
Затем проверьте, что путь к директории с файлом make указан в переменной окружения PATH:
$ which make
$ echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
В нашем примере путь /usr/bin содержится в переменной окружения PATH. Чтобы добавить в PATH новую директорию, используйте команду:
export PATH=$PATH:/path_to/dir
Чтобы сделать это изменение постоянным для текущего пользователя, отредактируйте файл ~/.bashrc:
$ nano ~/.bashrc
Добавьте в конец строку:
export PATH=$PATH:/path_to/dir
Как установить команду make в различных ОС?
Если утилита действительно отсутствует на вашем компьютере, ниже мы покажем установить команду make в разных версиях Linux.
В Fedora, Oracle/Rocky Linux, CentOS, Fedora и RHEL утилита make можно установить отдельно с помощью команды:
# yum install make
или
# dnf install make
Или в составе группы пакетов Development tools (потребуется около 500 Мб на диске).
# dnf groupinstall "Development tools"
(в RHEL/CentOS 8)
или
(в предыдущих версиях RPM дистрибутивов Linux)
# yum groupinstall "Development tools"
Если make уже установлен, но не работает, можете переустановить его:
# yum reinstall make
В deb-based дистрибутивах, таких Ubuntu, Debian, Raspbian, Kali Linux можно установить пакет make с помощью команд:
#apt-get install make
Также команда make содержится в метапакете build-essential. Для его установки выполните:
# apt-get install build-essential
Для переустановки пакета make, выполните:
# apt-get install --reinstall make
Или
# sudo dpkg-reconfigure make
Или:
# apt-get remove make
# apt-get install make
В дистрибутивах на основе Arch (Arch Linux, Manjaro) утилиту make можно установить отдельно:
$ sudo pacman –Syu
$ sudo pacman -S make
Или вместе с пакетом base-devel:
$sudo pacman -Sy base-devel
Для автоматической установки команды make и средств разработки в Docker контейнере можно добавить в docker файл инструкцию:
RUN apt-get install -y build-essential
В Windows можно установить команду make с помощью менеджера пакета Chocolatey. Установите choco (если не установлен):
PS> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Затем можете установить make в Windows:
PS> choco install make