在 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 归档源)。
解决方案(按顺序执行)
- 修复 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
- 安装编译依赖
yum 源恢复后,安装 gcc、gcc-c++ 和 make:
yum install -y gcc gcc-c++ make
- 重新编译安装 Redis
cd /opt/redis-6.2.14 # 进入 Redis 源码目录
make distclean # 清理上次编译残留(如果有)
make # 开始编译
make install # 安装到系统
- 验证安装
redis-server --version
redis-cli --version
如果正确显示版本号,说明 Redis 已成功安装。
归根结底,这些问题都是因为 CentOS 7 太老了,官方已停止维护。无论是 yum 源失效,还是默认不带开发工具包,都在提醒我们是时候拥抱 Rocky Linux 或 AlmaLinux 这类更现代的替代品了。不过在本地测试环境中,通过替换 Vault 源还能继续发挥余热,以上方案亲测有效。
本人真实踩坑记录,内容由AI帮助润色。