make 是一个自动化编译工具,它根据一个名为 Makefile 的文件来决定如何编译和链接程序,绝大多数需要从源代码编译安装的软件(如 nginx, vim, docker 等)都会依赖 make。

下面我将为您提供详细的解决方案,从最简单到最复杂,并解释可能的原因。
解决方案
安装 GNU Make (最常见、最直接的方法)
这是解决此问题的标准方法,您只需要使用您系统包管理器来安装它即可。
检查您使用的 Linux 发行版
您可以在终端输入以下命令来查看:

cat /etc/os-release
根据您的发行版选择对应的安装命令
对于 Debian / Ubuntu / Mint 及其衍生版:
这些系统使用 apt 包管理器。
# 更新软件包列表 sudo apt update # 安装 make sudo apt install build-essential
小贴士:
build-essential是一个“元包”(meta-package),它会自动安装make,gcc,g++等编译和构建软件所需的核心工具,对于大多数情况,安装它比只安装make更好。
对于 CentOS / RHEL / Fedora / Rocky Linux / AlmaLinux:
这些系统使用 yum 或 dnf 包管理器。

# 对于 CentOS/RHEL 7/8 和 Fedora 之前的版本 sudo yum groupinstall "Development Tools" # 对于 Fedora 22+ 和 CentOS/RHEL 8+ sudo dnf groupinstall "Development Tools"
同样,
Development Tools组也包含了make,gcc,g++等构建工具。
对于 Arch Linux:
Arch 使用 pacman 包管理器。
sudo pacman -S base-devel
base-devel组是 Arch 的基础开发工具集,包含了make。
对于 openSUSE:
openSUSE 使用 zypper 包管理器。
sudo zypper install -t pattern devel_C_C++
验证安装 安装完成后,再次输入以下命令检查版本:
make --version
如果能看到 make 的版本信息(GNU Make 4.3),就说明安装成功了。
检查环境变量 (PATH)
如果您确定已经安装了 make,但系统仍然找不到它,这很可能是 环境变量 PATH 配置问题。
PATH 环境变量告诉系统在哪些目录下查找可执行文件。make 所在的目录没有被包含在 PATH 中,系统自然就找不到它。
检查 make 是否存在
用 which 或 whereis 命令查找 make 的位置:
# 查找 make 的可执行文件路径 which make # 查找 make 的所有相关文件 whereis make
如果这两个命令返回了一个路径(/usr/bin/make),说明 make 确实存在,只是系统找不到它。
检查当前 PATH 变量
在终端输入:
echo $PATH
您会看到一串由冒号 分隔的目录列表,检查 make 所在的目录(/usr/bin)是否在这个列表里。
临时修复 (仅对当前终端会话有效)
如果您只是想在当前终端窗口中使用 make,可以临时将它的目录添加到 PATH:
export PATH=$PATH:/usr/bin
注意:这种方法只对当前打开的终端窗口有效,关闭终端后失效。
永久修复 (推荐) 为了永久解决这个问题,您需要修改系统的 shell 配置文件。
-
对于 Bash Shell (最常见): 编辑
~/.bashrc文件:nano ~/.bashrc
在文件末尾添加下面这行(
/usr/bin不在PATH中):export PATH=$PATH:/usr/bin
保存文件后,让配置生效:
source ~/.bashrc
-
对于 Zsh Shell (在 macOS 和一些现代 Linux 发行版中流行): 编辑
~/.zshrc文件:nano ~/.zshrc
同样在文件末尾添加
export命令并保存,然后运行:source ~/.zshrc
总结与排查步骤
当您遇到 make: command not found 时,请按以下步骤操作:
- 首先尝试安装:根据您的 Linux 发行版,使用
apt、yum或dnf安装make(最好是build-essential或Development Tools)。 - 验证安装:运行
make --version确认安装成功。 - 如果安装了仍报错:使用
which make检查make是否存在。 which make有输出:说明是PATH环境变量问题,请按照“方案二”的步骤,检查并修复您的PATH配置。
对于绝大多数用户来说,方案一 就足以解决问题,只有在特殊的环境(如某些 Docker 容器、最小化安装的系统或自定义的 PATH 环境中)才需要考虑方案二。
