记录正式环境测试环境【RedHat7编译升级redis7.0.9】--有关报错及解决

news2024/11/8 11:46:58

记录正式环境&测试环境【RedHat7 编译升级redis7.0.9】--有关报错及解决

  • 🔻 一、报错详情
      • 1.1 ⛳ 写在前面
      • 1.2 ⛳ 报错1
      • 1.3 ⛳ 报错2
      • 1.4 ⛳ 安装redis
      • 1.5 ⛳ 版本检查
  • 🔻 二、⛳ 总结

在这里插入图片描述



🔻 一、报错详情

1.1 ⛳ 写在前面

🍁 升级前务必做好旧版数据目录、配置文件、启动文件备份,方便出错后进行恢复。 🍁

🍁1、在上一篇文章中【Redis升级—修复代码注入漏洞、缓冲区错误漏洞】,给大家写到,redis7.09编译需要更高版本的gcc和Python环境,本次是在客户内网环境下做redis升级,做redis漏洞整改,特记录有关问题及解决办法。

🍁2、因为编译升级gcc需要时间较长,所以就没有升级gcc,python和gcc都采用系统自带的版本,记录的步骤可供大家参考和学习。



  • 正式环境编译竟没有报错:😅😅😅,升级很顺利😂😂😂。

[root@zwgxxt-sj redis-7.0.9]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)
只是操作系统版本不一致而已,其他gcc,python版本都一样。

正式环境编译情况:
在这里插入图片描述在这里插入图片描述

  • 正式环境升级结果:

1、启动redis服务
[root@zwgxxt-sj run]# service redisd start
Starting Redis server…

2、redis服务进程查看,
[root@zwgxxt-sj run]# ps -ef | grep redis
root 33524 81182 0 18:29 pts/1 00:00:00 vim /etc/init.d/redisd
root 33746 81182 0 18:29 pts/1 00:00:00 vi redisd-bak
root 34622 1 0 18:31 ? 00:00:00 /usr/local/bin/redis-server *:8811
root 34656 81182 0 18:31 pts/1 00:00:00 grep --color=auto redis

3、redis版本检查
[root@zwgxxt-sj run]# redis-cli -v
redis-cli 7.0.9
[root@zwgxxt-sj run]#

在这里插入图片描述

4、应用系统检查---正常
在这里插入图片描述




  • 下面是虚拟机搭建的测试环境----含有关报错解决😲😲😲

🍁1、操作系统版本Red Hat Enterprise Linux Server release 7.9 (Maipo)
[root@db-oracle src]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
[root@db-oracle src]#

🍁2、redis版本redis 7.0.9
[root@db-oracle src]# redis-cli -v
redis-cli 7.0.9

🍁3、gcc版本gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
[root@db-oracle src]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright © 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

🍁4、python版本Python 2.7.5
[root@db-oracle src]# python --version
Python 2.7.5



1.2 ⛳ 报错1

  • 前置操作:

[root@db-oracle redis-7.0.9]# make MALLOC=libc

  • 报错:

MAKE hdr_histogram
cd hdr_histogram && make
make[3]: Entering directory /usr/local/redis-7.0.9/deps/hdr_histogram' cc -std=c99 -Wall -Os -g -DHDR_MALLOC_INCLUDE=\"hdr_redis_malloc.h\" -c hdr_histogram.c ar rcs libhdrhistogram.a hdr_histogram.o make[3]: Leaving directory /usr/local/redis-7.0.9/deps/hdr_histogram’
make[2]: Leaving directory /usr/local/redis-7.0.9/deps' make[1]: *** No rule to make target …/deps/jemalloc/include/jemalloc/jemalloc.h’, needed by adlist.o'. Stop. make[1]: Leaving directory /usr/local/redis-7.0.9/src’
make: *** [all] Error 2
[root@db-oracle redis-7.0.9]

  • 解决办法:

1、🍁进入redis-7.0.9/deps目录
[root@db-oracle redis-7.0.9]# cd deps/
[root@db-oracle deps]# pwd
/usr/local/redis-7.0.9/deps
[root@db-oracle deps]#

2、🍁执行命令:make hiredis jemalloc linenoise lua
在这里插入图片描述

3、🍁再次执行命令: make MALLOC=libc
在这里插入图片描述



1.3 ⛳ 报错2

  • 前置操作:

🍁 执行make test报错
[root@db-oracle redis-7.0.9]# make test

  • 报错:

🍁 错误内容:
!!! WARNING The following tests failed:

*** [err]: client freed during loading in tests/integration/rdb.tcl
Expected ‘0’ to be equal to ‘1’ (context: type eval line 10 cmd {assert_equal [s loading] 1} proc ::start_server)
*** [err]: config during loading in tests/unit/introspection.tcl
Expected ‘0’ to be equal to ‘1’ (context: type eval line 10 cmd {assert_equal [s loading] 1} proc ::start_server)
*** [err]: Active defrag edge case in tests/unit/memefficiency.tcl
defrag didn’t stop.
Cleanup: may take some time… OK
make[1]: *** [test] Error 1
make[1]: Leaving directory `/usr/local/redis-7.0.9/src’
make: *** [test] Error 2
[root@db-oracle redis-7.0.9]#


在这里插入图片描述

  • 解决办法:

🍁 1、编辑rdb.tcl文件:vim tests/integration/rdb.tcl

在这里插入图片描述

🍁 2、编辑introspection.tcl文件:vim tests/unit/introspection.tcl

在这里插入图片描述

🍁 3、编辑memefficiency.tcl文件:vim tests/unit/memefficiency.tcl

在这里插入图片描述

-------------这些参数百度了一下应该是编译等待的毫秒数,所以把时间改大,并用单线程执行make test

🍁 4、用单线程执行行 make test:
[root@db-oracle redis-7.0.9]# taskset -c 1 sudo make test

在这里插入图片描述

-------------接下来即可执行make install 安装redis



1.4 ⛳ 安装redis

[root@db-oracle redis-7.0.9]# cd src && make install
which: no python3 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

Hint: It’s a good idea to run ‘make test’ ; )

INSTALL redis-server
INSTALL redis-benchmark
INSTALL redis-cli
[root@db-oracle src]#

1.5 ⛳ 版本检查

[root@db-oracle src]# redis-cli -v
redis-cli 7.0.9
[root@db-oracle src]#

🔻 二、⛳ 总结

🍁 1、编译有关过程报错,可能是gcc版本原因导致,因为gcc编译升级时间较长,所以直接用的gcc4.8.5编译升级的redis。但是正式环境没报错,只是操作系统版本不一致,所以也有可能是操作系统版本原因。
🍁 2、实验证明低版本的gcc、python也是可以编译高版本的redis的👻👻👻。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

甘特图神器大比拼——国内外7款经典工具评测

甘特图是一种重要的项目管理工具,它能够帮助我们规划、安排和跟踪项目的进度和任务。然而,市面上的甘特图工具众多,选择恰当的工具并不容易。在本文中,我们将为您介绍国内外7款经典的甘特图神器,并进行详细评测和比较。…

常见分布式事务

一、2PC 将事务的提交过程分为 资源准备 和 资源提交 两个阶段,准备阶段所有事务参与者都预留资源的成功与否,决定了第二阶段提交或回滚。 2PC 第一阶段:准备阶段 1.协调者向所有参与者发送事务内容,询问是否可以提交事务&#…

libevent(7)libevent中的事件event

一、事件状态 libevent有4种事件状态,分别是: initialized、pending、active、persistent。这4种状态的转换关系如下: 1、已初始化(initialized):对应图中的non-pending状态,表示事件已经新建完成,但是还未…

细说设计模式

23种设计模式 (一)、创建型模式 对象实例化的模式,创建型模式用于解耦对象的实例化过程。 单例模式:某个类只能有一个实例,提供一个全局的访问点。工厂方法模式:一个工厂类根据传入的参量决定创建出哪一种…

AutoCMS全自动网站系统,供大家学习研究参考,商用请联系开发者!

AutoCMS全自动建站系统,只要一个关键词即可生成一个站,全自动建站、无需维护、无需数据库、无需安装,下载即用。支持在二级目录运行,丰富您的网站内容。 AutoCMS全自动网站使用说明 1.程序无需安装,解压该软件包之后&…

CSS的自定义属性var和JS的classList.toggle()方法,使用详细(css中var变量怎么应用)

简介:CSS中的var(变量)是CSS3中的新特性,用于定义可重用的值,类似于编程语言中的变量;它允许您在整个CSS文件中定义一个值,并在需要时使用该值。这样可以使CSS更加灵活和易于维护;cl…

VUE L 数据代理 ④

目录 文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持✨ V u e j s Vuejs Vuejs数据代理 什么是数据代理❓ 代理底层~ D e f i n e P r o p e r y DefinePropery DefinePropery V u e Vue Vue数据代理原理理解总结 文章有误…

第三方库介绍——libpng

文章目录 概述库版本的选择与下载安装zlib和libpng交叉编译交叉编译zlib库交叉编译libpng库 libpng的使用 概述 libpng是一款C语言编写的比较底层的读写PNG文件的跨平台的库。由于依赖于zlib库,所以在安装libpng时往往还需要安装zlib库。 库版本的选择与下载 zli…

积分等式与积分不等式

参考资料: B站 - 考研数学-积分不等式(所有方法全归纳)张宇基础和强化及习题册 积分等式 中值定理夹逼准则积分法 在这个专题中,有如下经验: 遇到 f ( x ) f(x) f(x)连续,应当想到变限积分 ∫ a x f ( t…

【软考网络管理员】2023年软考网管初级常见知识考点(6)- 虚拟局域网技术

涉及知识点 什么是虚拟局域网VLAN?VLAN的分类有哪些,IEEE802.1Q,VLAN的端口类型,VLAN信息的传递,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 文章目录 涉及知识点…

单臂路由(RIP协议原理)

一、前言 1.1 本文为单臂路由(RIP协议原理)笔记 (供新手参考) 通过RIP协议,交换机、单臂路由的工作原理和配置方法。 1.2 思科路由器设置ip设置 在将设备摆放完毕后,需要配置每台设备的IP,有如下三种基…

深入理解Java中的Lock和AQS

文章目录 前言正文一、Lock接口的定义二、ReentrantLock 的实现三、AbstractQueuedSynchronizer的实现3.1 AQS 中的加锁底层3.2 ReentrantLock中的 Sync 同步器3.3 NonfairSync 的实现3.4 FairSync 的实现3.5 公平锁和非公平锁的总结3.5.1 公平锁3.5.2 非公平锁 3.6 释放锁 前言…

突破边界:高性能计算引领LLM驶向通用人工智能AGI的创新纪元

AGI | AIGC | 大模型训练 | GH200 LLM | LLMs | 大语言模型 | MI300 ChatGPT的成功带动整个AIGC产业的发展,尤其是LLM(大型语言模型,大语言模型)、NLP、高性能计算和深度学习等领域。LLM的发展将为全球和中国AI芯片、AI服务器市场…

什么样的产品更适合做海外网红营销?

随着社交媒体和全球化的兴起,海外网红营销成为了一种非常受欢迎的推广方式。然而,并非所有产品都能够在海外市场成功借助网红营销实现推广目标。本文Nox聚星将和大家详细探讨什么样的产品更适合在海外进行网红营销,并提供相关的策略建议。 一…

汽车智能化进入赛点:城市NOA落地竞速,战至最后一公里

城市NOA的竞争正在加速进入落地阶段,6月即将结束,理想汽车计划在剩余几天内,在北京和上海开启城市辅助智能驾驶功能内测,并在下半年推出通勤智能驾驶功能。 其应用方法是,车主可用在日常使用中,基于智能化…

Linux系统编程(多进程编程深入1)

文章目录 前言一、进程参数和环境变量的意义二、子进程程序结束返回值到哪里去了?三、进程退出函数四、实际使用案例五、僵尸进程总结 前言 本篇文章我们深入的讲解多进程编程。 一、进程参数和环境变量的意义 进程参数和环境变量是两种不同的机制,但…

SuperMap GIS基础产品桌面GIS FAQ集锦(3)

SuperMap GIS基础产品桌面GIS FAQ集锦(3) 【iDesktop】如何获取倾斜摄影的边界线? 【解决办法】1、将倾斜摄影添加到球面场景,使用【三维分析】-【生成DSM】获取栅格数据集 2、使用【代数运算】功能,将大于0的栅格值统…

我做了10年的测试,由衷的建议年轻人别入这行了

两天前,有个做功能测试7年的同事被裁员了。这位老哥已经做到了团队中的骨干了,人又踏实,结果没想到刚刚踏入互联网“老龄化”大关,就被公司给无情优化了。 现在他想找同类型的工作,薪资也一直被压,考虑转行…

java(SpringBoot)中操作Redis的两种方式

前言 之前我们介绍过了redis的五中基本类型以及在可视化界面进行操作,那么在开发中(在代码中)我们通常使用,jedis进行操作redis,要是springboot 项目,我们通常使用redisTemplte进行操作 首先将redis启动 方式一 Jred…

smart Java——Netty实战(上):select/poll/epoll、NIOReactor模型

文章目录 1.多路复用——select、poll、epoll底层原理2.NIOReactor模型(1)单Reactor单线程模型(2)单Reactor多线程模型(3)主从Reactor多线程模型(Netty) 3.Netty核心组件&#xff08…