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

CentOS 7升级glibc 2.34踩坑实录:从依赖安装到避坑指南

CentOS 7升级glibc 2.34实战指南从工具链准备到疑难解决1. 为什么需要升级glibc在CentOS 7默认环境中系统自带的glibc版本通常为2.17而现代软件开发工具如Node.js 18、Python 3.10等往往需要更高版本的glibc支持。当你在运行这些新工具时遇到类似/lib64/libc.so.6: version GLIBC_2.28 not found的错误时就意味着需要升级glibc了。glibc作为Linux系统的核心库负责提供基础的系统调用和标准C库功能。升级它需要考虑以下关键因素系统稳定性风险glibc与几乎所有系统程序都有关联依赖关系复杂需要先升级编译器工具链GCC、make等回退困难一旦升级失败可能导致系统无法启动提示建议在升级前对重要数据进行备份并在测试环境中先行验证升级流程。2. 升级前的准备工作2.1 系统环境检查首先确认当前glibc版本和系统架构# 查看当前glibc版本 strings /lib64/libc.so.6 | grep GLIBC_ # 确认系统架构 uname -m2.2 工具链升级根据glibc 2.34的编译要求我们需要先升级以下工具工具名称最低要求版本检查命令GCC6.2gcc --versionmake4.0make --versionbinutils2.25ld --versionPython3.4python3 --versionPython 3升级步骤sudo yum install -y python3 sudo alternatives --set python /usr/bin/python3make工具升级wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz tar -xzvf make-4.3.tar.gz cd make-4.3 ./configure --prefix/usr make -j$(nproc) sudo make install3. GCC工具链升级3.1 安装依赖项sudo yum install -y bison flex gmp-devel mpfr-devel libmpc-devel texinfo3.2 编译安装GCC 9.3.0wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz tar -xzvf gcc-9.3.0.tar.gz cd gcc-9.3.0 # 下载依赖项 ./contrib/download_prerequisites # 配置编译选项 mkdir build cd build ../configure --prefix/usr --disable-multilib --enable-languagesc,c # 编译安装 make -j$(nproc) sudo make install验证GCC版本gcc --version # 应显示9.3.0或更高4. glibc 2.34编译安装4.1 获取源码并准备编译环境wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.34.tar.gz tar -xzvf glibc-2.34.tar.gz cd glibc-2.34 mkdir build cd build4.2 配置编译选项../configure --prefix/usr \ --disable-profile \ --enable-add-ons \ --with-headers/usr/include \ --with-binutils/usr/bin \ --disable-sanity-checks \ --disable-werror关键配置参数说明--prefix/usr指定安装到系统目录--disable-profile禁用性能分析支持--enable-add-ons启用附加组件--disable-werror将警告不作为错误处理4.3 编译与安装make -j$(nproc) sudo make install5. 常见问题解决方案5.1__tunable_get_val符号错误在make install阶段可能遇到gcc: relocation error: /lib64/libc.so.6: symbol __tunable_get_val, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference解决方案# 使用旧版glibc临时创建符号链接 LD_PRELOAD/lib64/libc-2.17.so sln /opt/glibc-2.34/build/libc.so.6 /lib64/libc.so.6 LD_PRELOAD/lib64/libc-2.17.so sln /opt/glibc-2.34/build/elf/ld-linux-x86-64.so.2 /usr/lib64/ld-linux-x86-64.so.25.2 nss_test2兼容性问题编译时可能出现/usr/bin/ld: cannot find -lnss_test2 collect2: error: ld returned 1 exit status解决方案修改glibc-2.34/scripts/test-installation.pl文件找到约128行 $name ne nss_test1 $name ne libgcc_s) {修改为 $name ne nss_test1 $name ne nss_test2 $name ne nss_nis $name ne nss_nisplus $name ne libgcc_s) {6. 验证与系统恢复6.1 验证glibc版本strings /lib64/libc.so.6 | grep GLIBC_输出应包含GLIBC_2.34相关条目。6.2 重建本地化环境localedef -c -i en_US -f UTF-8 en_US.UTF-86.3 关键系统命令测试# 测试基本命令 ls --version bash --version # 测试动态链接 ldd --version7. 升级后的系统优化7.1 重建动态库缓存sudo ldconfig7.2 验证Node.js等高版本软件# 示例安装Node.js 18 curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - sudo yum install -y nodejs node --version7.3 系统服务检查# 检查关键系统服务状态 systemctl list-units --typeservice --staterunning在实际操作中我遇到过因glibc升级导致某些老旧服务无法启动的情况。这时需要重新编译这些服务或寻找兼容的替代方案。建议在升级后的一周内密切监控系统日志sudo tail -f /var/log/messages

相关文章:

CentOS 7升级glibc 2.34踩坑实录:从依赖安装到避坑指南

CentOS 7升级glibc 2.34实战指南:从工具链准备到疑难解决 1. 为什么需要升级glibc? 在CentOS 7默认环境中,系统自带的glibc版本通常为2.17,而现代软件开发工具(如Node.js 18、Python 3.10等)往往需要更高版…...

信息奥赛一本通—编程启蒙(3346:【例60.3】 找素数)

代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int a, b;cin >> a >> b;for (int i a; i < b; i) {if (i < 2) continue;bool flag true; for (int j 2; j * j < i; j) {if (i % j 0) {flag false;break; }}…...

Pixel Dimension Fissioner 自动化测试应用:生成测试用例与Mock数据

Pixel Dimension Fissioner 自动化测试应用&#xff1a;生成测试用例与Mock数据 1. 测试自动化的新选择 在软件测试领域&#xff0c;最耗时费力的环节往往不是执行测试&#xff0c;而是准备测试。测试工程师常常需要花费大量时间编写测试用例、设计边界条件、构造Mock数据。传…...

卡证检测矫正模型效果深度评测:对比传统OCR与深度学习方案

卡证检测矫正模型效果深度评测&#xff1a;对比传统OCR与深度学习方案 最近在做一个需要批量处理身份证、银行卡图片的项目&#xff0c;对市面上几种主流的OCR方案做了一轮比较深入的测试。说实话&#xff0c;之前用传统方法处理这类问题&#xff0c;经常被各种奇葩的图片搞得…...

脉冲神经网络(SNN)创新实践:AAAI-2024时间步长动态调整策略解析

1. 脉冲神经网络与时间步长的核心挑战 第一次接触脉冲神经网络&#xff08;SNN&#xff09;时&#xff0c;我被它模拟生物神经元的工作方式深深吸引。但真正动手训练模型时&#xff0c;很快就遇到了固定时间步长这个拦路虎。传统SNN就像用固定节奏打拍子——无论输入数据是简单…...

SGP30传感器驱动开发:I²C异步通信与环境补偿实践

1. SGP30环境传感器库深度解析&#xff1a;面向嵌入式工程师的底层驱动实践指南1.1 传感器原理与工程定位SGP30是由Sensirion公司推出的高集成度环境气体传感器&#xff0c;其核心价值不在于直接测量CO₂或TVOC&#xff08;总挥发性有机物&#xff09;&#xff0c;而在于通过多…...

图像处理新手必看:3种常见噪声的识别与去除实战(附Python代码)

图像处理新手必看&#xff1a;3种常见噪声的识别与去除实战&#xff08;附Python代码&#xff09; 在数字图像处理领域&#xff0c;噪声就像不请自来的客人&#xff0c;总是悄无声息地破坏我们的图像质量。无论是用手机拍摄的照片&#xff0c;还是医学影像、卫星图像&#xff0…...

手把手教学:通义千问1.8B轻量模型WebUI环境搭建与配置

手把手教学&#xff1a;通义千问1.8B轻量模型WebUI环境搭建与配置 1. 环境准备与快速部署 1.1 系统要求检查 在开始部署前&#xff0c;请确保你的系统满足以下最低要求&#xff1a; 操作系统&#xff1a;Linux&#xff08;推荐Ubuntu 20.04或更高版本&#xff09;GPU&#…...

HereSphere VR播放器下载地址与使用教程(Meta Quest 2/3可用)Meta Quest播放器、HereSphere下载、VR视频播放器推荐、Quest 3看片工具、VR本地播放器、

HereSphere VR播放器下载与使用教程&#xff08;Meta Quest 2/3可用&#xff09; 关键词&#xff1a;Meta Quest播放器、HereSphere下载、VR视频播放器推荐、Quest 3看片工具、VR本地播放器、HereSphere使用教程 前段时间我在折腾 Quest 3 本地 VR 视频播放的时候&#xff0c…...

C++STL容器实战指南:从底层原理到高效应用

1. 为什么你需要深入理解STL容器&#xff1f; 我刚接触C时&#xff0c;总觉得STL容器就是个黑盒子——知道怎么用就行&#xff0c;何必管它里面怎么实现。直到有次面试被问到"vector扩容时会发生什么"&#xff0c;我支支吾吾答不上来&#xff0c;才意识到理解底层原理…...

革新性炉石传说辅助工具:HSTracker如何用数据驱动提升macOS玩家胜率

革新性炉石传说辅助工具&#xff1a;HSTracker如何用数据驱动提升macOS玩家胜率 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 你是否曾在炉石传说对战中因记不清对手已…...

Qt应用开发者的福音:QCefView如何帮你轻松搞定跨平台Web嵌入(附实战代码)

Qt应用开发者的福音&#xff1a;QCefView如何帮你轻松搞定跨平台Web嵌入&#xff08;附实战代码&#xff09; 在当今应用开发领域&#xff0c;Web技术与原生界面的融合已成为不可逆转的趋势。对于Qt开发者而言&#xff0c;如何在保持原生应用高性能的同时&#xff0c;又能充分…...

实战指南:基于libVLC与VLC-Qt构建跨平台视频播放组件

1. 为什么选择libVLC和VLC-Qt 视频播放功能是现代桌面应用中的常见需求&#xff0c;无论是开发媒体播放器、视频会议软件还是安防监控系统&#xff0c;都需要可靠的视频解码和渲染能力。libVLC和VLC-Qt正是解决这类需求的利器。 libVLC是VLC媒体播放器的核心库&#xff0c;提供…...

Qwen3-ASR-1.7B多语言识别效果展示:支持52种语种的实战案例

Qwen3-ASR-1.7B多语言识别效果展示&#xff1a;支持52种语种的实战案例 1. 引言 语音识别技术正在以前所未有的速度发展&#xff0c;但真正能够同时处理多种语言和方言的模型却寥寥无几。当我第一次测试Qwen3-ASR-1.7B时&#xff0c;最让我惊讶的不是它的准确率&#xff0c;而…...

接口自动化测试中的数据库校验:核心方法与实用技巧

文章目录一、数据库校验&#xff1a;接口自动化的“最后一道防线”1.1 为什么必须做数据库校验&#xff1f;1.2 典型失效场景二、数据库校验的核心思路与流程2.1 标准执行流程2.2 核心原则三、落地实践&#xff1a;从工具封装到用例设计3.1 轻量化数据库操作工具封装3.2 极简版…...

3个步骤解决抖音无水印视频解析难题:开源工具技术实践指南

3个步骤解决抖音无水印视频解析难题&#xff1a;开源工具技术实践指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容创作与传播领域&#xff0c;视频资源的高效获取成为内容创作者、研究者和教育…...

3种场景解锁B站视频自由:BilibiliDown让离线观看更简单

3种场景解锁B站视频自由&#xff1a;BilibiliDown让离线观看更简单 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/…...

PCL点云可视化实战:5种炫酷渲染技巧让你的3D模型瞬间出彩

PCL点云可视化实战&#xff1a;5种炫酷渲染技巧让你的3D模型瞬间出彩 在3D建模和计算机视觉领域&#xff0c;点云数据的可视化效果直接影响着开发者的工作效率和项目展示质量。PCLVisualizer作为PCL库中最强大的可视化工具&#xff0c;提供了丰富的渲染选项&#xff0c;但很多开…...

Z-Image-GGUF效果展示:‘professional photography’风格与‘digital art’风格对比

Z-Image-GGUF效果展示&#xff1a;‘professional photography’风格与‘digital art’风格对比 1. 引言&#xff1a;当AI画笔遇见两种艺术灵魂 想象一下&#xff0c;你手里有一支神奇的画笔&#xff0c;只要告诉它你的想法&#xff0c;它就能画出你脑海中的画面。现在&#…...

Llama-3.2V-11B-cot 与 Java 八股文知识库结合:构建动态更新的面试学习系统

Llama-3.2V-11B-cot 与 Java 八股文知识库结合&#xff1a;构建动态更新的面试学习系统 1. 引言 最近和几个准备跳槽的朋友聊天&#xff0c;发现他们都在为同一件事头疼&#xff1a;Java八股文。不是题目太难&#xff0c;而是变化太快。今天还在背HashMap的源码&#xff0c;明…...

RTL8720硬件RTC中断库:高确定性时间触发方案

1. 项目概述RTL8720_RTC 是一款专为 Realtek RTL8720 系列 SoC&#xff08;包括 RTL8720DN、RTL8722DM、RTL8722CSM&#xff09;设计的高可靠性实时时钟&#xff08;RTC&#xff09;Arduino 封装库。该库并非简单封装 HAL 层 RTC 寄存器操作&#xff0c;而是围绕 RTL8720 片上 …...

终极指南:3分钟学会抖音无水印视频批量下载

终极指南&#xff1a;3分钟学会抖音无水印视频批量下载 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 想要永久保存抖音上的精彩视频&#xff0c;却总是被烦人的水印困扰&#xff1f;今天我要分享一个开源神…...

嵌入式网络丢包故障的分层诊断与工程实践

1. 网络通信数据丢包故障分析&#xff1a;嵌入式系统工程师视角的工程化诊断方法在网络设备开发与现场部署过程中&#xff0c;数据丢包是嵌入式系统工程师最常遭遇、却也最容易被表象误导的底层通信故障。当一个基于ESP32或STM32的物联网终端在接入企业局域网后出现MQTT连接频繁…...

Citra模拟器架构深度解析:高性能3DS游戏仿真技术实现

Citra模拟器架构深度解析&#xff1a;高性能3DS游戏仿真技术实现 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra Citra作为一款开源的任天堂3DS模拟器&#xff0c;通过精确的硬件仿真和优化的软件架构&#xff0c…...

基于单片机智能水表水流量计流量设计

系统组成与功能概述 该系统基于STC89C52单片机&#xff0c;集成水流量传感器、温度检测、继电器控制、液晶显示及报警功能。核心功能包括实时流量监测、温度显示、阈值报警及阀门控制。 硬件模块说明 水流量传感器 采用椭圆齿轮传感器&#xff0c;通过齿轮转动产生脉冲信号&…...

KL25Z裸机实现MMA8451Q倾斜角计算与验证

1. 项目概述FRDM_AS_是一个面向 NXP FRDM-KL25Z 开发平台的嵌入式固件验证程序&#xff0c;其核心目标并非通用加速度计驱动库&#xff0c;而是以工程验证为导向的倾斜角计算功能闭环测试系统。该程序直接运行于 KL25Z 微控制器&#xff08;基于 ARM Cortex-M0 内核&#xff0c…...

5分钟快速解决:Open Interpreter Windows系统终极安装指南

5分钟快速解决&#xff1a;Open Interpreter Windows系统终极安装指南 【免费下载链接】open-interpreter 项目地址: https://gitcode.com/GitHub_Trending/ope/open-interpreter Open Interpreter是一款让大语言模型在本地运行代码的开源工具&#xff0c;为你提供了类…...

EasyDMX:ESP32平台DMX512全双工通信实现方案

1. EasyDMX库深度解析&#xff1a;面向ESP32的DMX512全双工通信实现方案1.1 库定位与工程价值EasyDMX是一个专为ESP32平台设计的轻量级DMX512协议栈&#xff0c;其核心目标并非替代专业级舞台控制设备&#xff0c;而是解决嵌入式开发者在中小型灯光控制系统、互动装置、教育实验…...

NEURAL MASK 效果量化评估:使用PSNR、SSIM等指标科学对比模型优劣

NEURAL MASK 效果量化评估&#xff1a;使用PSNR、SSIM等指标科学对比模型优劣 1. 引言 当你训练了一个图像修复模型&#xff0c;比如NEURAL MASK&#xff0c;看着它生成的图片感觉还不错&#xff0c;但心里总有点没底&#xff1a;它到底有多好&#xff1f;比另一个模型强在哪…...

PHP-Resque工作者管理:如何高效运行多进程和信号处理

PHP-Resque工作者管理&#xff1a;如何高效运行多进程和信号处理 【免费下载链接】php-resque PHP port of resque (Workers and Queueing) 项目地址: https://gitcode.com/gh_mirrors/ph/php-resque PHP-Resque是一个强大的PHP后台任务队列系统&#xff0c;专门用于创建…...