linux:centos7升级glibc到2.36

2024-06-11 08:44
文章标签 linux centos7 升级 glibc 2.36

本文主要是介绍linux:centos7升级glibc到2.36,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

# 安装依赖的东东

yum install -y gcc gcc-c++ glibc-devel openssl-devel openssl-static zlib-devel lzma tk-devel xz-devel bison bzip2 bzip2-devel ncurses-devel gdbm-devel readline-devel sqlite-devel libffi-devel texinfo libmpc-devel

# 安装make

cd /chz/install/make
wget http://ftp.gnu.org/pub/gnu/make/make-4.4.1.tar.gz
tar zxvf make-4.4.1.tar.gzcd /chz/install/make/make-4.4.1
mkdir build
cd buildcd /chz/install/make/make-4.4.1/build
../configure --prefix=/usr/bash build.sh
make install

# 安装gcc

yum erase gcc-4.8.5-44.el7.x86_64
yum install centos-release-scl
yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++
scl enable devtoolset-8 bash# 看下gcc的版本
gcc -v# 找出gcc的位置
which gcc
<<<< 位置如下:
/opt/rh/devtoolset-8/root/usr/bin/gcc
>>>>vim /etc/profile
<<<< 添加内容:
export PATH=/opt/rh/devtoolset-8/root/usr/bin:$PATH
>>>>

# 安装python3

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -zxf Python-3.8.0.tgz 
cd Python-3.8.0mkdir build
cd buildmkdir /usr/local/python3
../configure --prefix=/usr/local/python3
make -j4
make installvim /etc/profile
<<<< 添加以下内容
export PYTHON3_HOME=/usr/local/python3
export PATH=$PYTHON3_HOME/bin:$PATH
>>>>ls -s /usr/local/python3/bin/python3 /usr/bin/python3

# 安装glibc

wget https://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.gz
tar zxvf glibc-2.36.tar.gz
cd glibc-2.36mkdir build  
cd buildcd /chz/install/glibc/glibc-2.36/build
../configure --prefix=/usr
make -j4
make install

在【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
make[1]: *** [Makerules:1033: /chz/install/glibc/glibc-2.36/build/format.lds] Error 127
make[1]: Leaving directory '/chz/install/glibc/glibc-2.36'
make: *** [Makefile:12: install] Error 2

解决方案如下:
先运行:

LD_PRELOAD=/lib64/libc-2.17.so sln /chz/install/glibc/glibc-2.36/build/libc.so.6                 /lib64/libc.so.6
LD_PRELOAD=/lib64/libc-2.17.so sln /chz/install/glibc/glibc-2.36/build/dlfcn/libdl.so.2          /lib64/libdl.so.2
LD_PRELOAD=/lib64/libc-2.17.so sln /chz/install/glibc/glibc-2.36/build/nptl/libpthread.so.0      /lib64/libpthread.so.0
LD_PRELOAD=/lib64/libc-2.17.so sln /chz/install/glibc/glibc-2.36/build/elf/ld-linux-x86-64.so.2  /usr/lib64/ld-linux-x86-64.so.2

注意上面的【/lib64/libc-2.17.so】是我机器上的版本号,要换成自己的版本号
注意上面的【/chz/install/glibc/glibc-2.36/build】是我编译glibc的目录,要换成自己的目标
然后再次执行

make install

执行一下【strings /lib64/libc.so.6 | grep GLIBC】试试,这时候应该正常了

# 以下是对我有帮助的两篇文章

https://roy.wang/centos7-upgrade-glibc/
https://liuchunjie.top/?id=453

这篇关于linux:centos7升级glibc到2.36的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050684

相关文章

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Linux grep 命令的使用指南

《Linuxgrep命令的使用指南》本文给大家介绍Linuxgrep命令的使用指南,包括基础搜索语法、实践指南,感兴趣的朋友跟随小编一起看看吧... 目录linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索2. 多文件搜索二、常用选项详解1. 输出控制选项2. 上下文控制选项三、正则表达

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输

MySQL 升级到8.4版本的完整流程及操作方法

《MySQL升级到8.4版本的完整流程及操作方法》本文详细说明了MySQL升级至8.4的完整流程,涵盖升级前准备(备份、兼容性检查)、支持路径(原地、逻辑导出、复制)、关键变更(空间索引、保留关键字... 目录一、升级前准备 (3.1 Before You Begin)二、升级路径 (3.2 Upgrade