CentOS 7 编译 Redis 报错?从 yum 源失效到编译工具缺失,一次踩坑全记录

15 阅读2分钟

在 CentOS 7 上编译 Redis 6.2.14 时,踩了两个连环坑,记录一下排查和解决过程。

坑一:编译时提示 cc: 未找到命令

进入 Redis 源码目录,执行 make 后直接报错:

cc: 未找到命令

原因很明显:系统缺少 C 语言编译器(gcc)和构建工具(make)。CentOS 7 最小化安装默认不带这些开发工具。

坑二:安装编译工具时 yum 源又挂了

尝试用 yum install gcc make -y 安装时,再次报错:

Could not resolve host: mirrorlist.centos.org

这是因为 CentOS 7 已于 2024 年 6 月停止官方维护,原有的 yum 源地址已经失效,需要手动替换为可用的镜像源(如阿里云的 Vault 归档源)。


解决方案(按顺序执行)

  1. 修复 yum 源,替换为阿里云 CentOS 7 Vault 源
# 备份原有失效源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 下载阿里云提供的 CentOS 7 仓库配置
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 清理旧缓存并重建
yum clean all
yum makecache
  1. 安装编译依赖

yum 源恢复后,安装 gcc、gcc-c++ 和 make:

yum install -y gcc gcc-c++ make
  1. 重新编译安装 Redis
cd /opt/redis-6.2.14      # 进入 Redis 源码目录
make distclean             # 清理上次编译残留(如果有)
make                       # 开始编译
make install               # 安装到系统
  1. 验证安装
redis-server --version
redis-cli --version

如果正确显示版本号,说明 Redis 已成功安装。


归根结底,这些问题都是因为 CentOS 7 太老了,官方已停止维护。无论是 yum 源失效,还是默认不带开发工具包,都在提醒我们是时候拥抱 Rocky Linux 或 AlmaLinux 这类更现代的替代品了。不过在本地测试环境中,通过替换 Vault 源还能继续发挥余热,以上方案亲测有效。

本人真实踩坑记录,内容由AI帮助润色。