当前位置: 首页 > news >正文

ubuntuserver24.04版本:redis编译安装时出现工具、依赖库问题解决方法

问题点: 安装redis时,解压redis-4.0.1.tar.gz后,使用make&&make install命令安装出现报错:

ubuntu:/usr/local/deploy/redis-4.0.1$ sudo make&&make install
cd src && make all
make[1]: Entering directory '/usr/local/deploy/redis-4.0.1/src'CC Makefile.dep
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
(cd ../deps && make distclean)
make[2]: Entering directory '/usr/local/deploy/redis-4.0.1/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
make[2]: Leaving directory '/usr/local/deploy/redis-4.0.1/deps'
(rm -f .make-*)
echo STD=-std=c99 -pedantic -DREDIS_STATIC='' >> .make-settings
echo WARN=-Wall -W -Wno-missing-field-initializers >> .make-settings
echo OPT=-O2 >> .make-settings
echo MALLOC=jemalloc >> .make-settings
echo CFLAGS= >> .make-settings
echo LDFLAGS= >> .make-settings
echo REDIS_CFLAGS= >> .make-settings
echo REDIS_LDFLAGS= >> .make-settings
echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb   -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include >> .make-settings
echo PREV_FINAL_LDFLAGS=  -g -ggdb -rdynamic >> .make-settings
(cd ../deps && make hiredis linenoise lua jemalloc)
make[2]: Entering directory '/usr/local/deploy/redis-4.0.1/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
(echo "" > .make-cflags)
(echo "" > .make-ldflags)
MAKE hiredis
cd hiredis && make static
make[3]: Entering directory '/usr/local/deploy/redis-4.0.1/deps/hiredis'
gcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c
make[3]: gcc: No such file or directory
make[3]: *** [Makefile:156: net.o] Error 127
make[3]: Leaving directory '/usr/local/deploy/redis-4.0.1/deps/hiredis'
make[2]: *** [Makefile:46: hiredis] Error 2
make[2]: Leaving directory '/usr/local/deploy/redis-4.0.1/deps'
make[1]: [Makefile:180: persist-settings] Error 2 (ignored)CC adlist.o
/bin/sh: 1: cc: not found
make[1]: *** [Makefile:228: adlist.o] Error 127
make[1]: Leaving directory '/usr/local/deploy/redis-4.0.1/src'
make: *** [Makefile:6: all] Error 2
ubuntu:/usr/local/deploy/redis-4.0.1$

根据提供的错误日志,编译失败的主要原因是系统中缺少必要的编译工具和依赖库。以下是解决步骤:

1. 安装编译工具链

错误信息显示gcc: No such file or directorycc: not found,说明缺少C编译器。执行以下命令安装基础编译工具:

sudo apt update
sudo apt install build-essential

2. 安装Redis依赖库

Redis需要依赖jemalloc、hiredis等库,安装相关依赖:

sudo apt install libjemalloc-dev tcl

3. 清理并重试编译

进入Redis源码目录,清理之前的编译文件后重新编译:

cd /usr/local/deploy/redis-4.0.1
sudo make distclean  # 彻底清理之前的编译文件
sudo make           # 重新编译

4. 处理jemalloc问题

如果仍出现jemalloc相关错误(如fatal error: jemalloc/jemalloc.h: No such file or directory),强制使用libc分配器:

sudo make MALLOC=libc

5. 安装Redis

编译成功后执行安装:

sudo make install

常见问题补充

  • 若缺少其他依赖:根据编译过程中的错误提示安装对应包(如sudo apt install libssl-dev)。
  • 权限问题:确保/usr/local/bin有写入权限(sudo make install已使用sudo)。
  • 较旧系统兼容性:Ubuntu 18.04+通常无此问题,如系统版本过低可升级或下载更新的Redis版本。

验证安装

redis-server --version
# 应输出:Redis server v=4.0.1 ...

注意:Redis 4.0.1是较旧版本(2017年发布),建议使用更新的稳定版(如7.2.x)以获得更好的安全性和功能支持。

相关文章:

  • 大模型笔记_模型微调
  • 模拟IC设计提高系列5-温度角与蒙特卡洛仿真
  • AI任务相关解决方案8-基于卷积神经网络(CNN)和反向传播神经网络(BPNN)的数字图像水印改进算法
  • MCP使用
  • Leetcode20 (有效的括号)
  • 【慧游鲁博】【11】后端 · Spring Boot 集成 Python 配置
  • 统计学(第8版)——方差分析Ⅰ(考试用)
  • ES Modules 与 CommonJS 的核心区别详解
  • 台湾住宅IP哪家好,怎么找到靠谱的海外住宅IP代理商
  • Web 架构之微服务拆分原则与反模式
  • Windows网络配置避坑指南
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 2】【如何配置和启动蓝牙profile服务】
  • python里的PDFMiner.six 库介绍
  • 菌菇食用攻略:从营养解析到安全指南,解锁科学食菌
  • 【全志V821_FoxPi】2-2 切换为spi nand方案启动
  • Context7 Mcp Quickstart
  • Kubernetes服务部署——RabbitMQ(集群版)
  • CMake指令: add_sub_directory以及工作流程
  • 前端实习校验函数汇总(未完成)
  • 一个超强的推理增强大模型,开源了,本地部署
  • 网站两边的悬浮框怎么做/深圳网络seo推广
  • 河北疫情紧急通知最新/广州网络优化最早的公司
  • 大庆市建设局网站上不去/企业做网上推广
  • 水利工程建设信息网站/如何对网站进行推广
  • 360网站提交/搜索引擎优化网站的网址
  • 未来做那个网站致富/图片识别 在线百度识图