Centos7安装Glibc 2.32版本(超详细)

✨1.问题:

某些工具在Centos7上低版本的GCC和Glibc运行都会报错,只有升级GCC和Glibc才行

手动编译和安装
如果软件包管理器不提供您需要的版本,另一个选择是手动编译和安装。

🌟问题1:执行最后面的glibc的make报如下错误 为make版本太低 升级make 版本

checking for bison… bison checking version of bison… 3.0.4, ok checking if gcc is sufficient to build libc… yes checking for nm… nm checking for python3… python3 checking version of python3… 3.6.8, ok configure: error: *** These critical programs are missing or too old: make *** Check the INSTALL file for required versions.

✨安装 make

在浏览器或使用命令行工具(如 wget)下载指定版本的make。以下是使用 wget 在命令行下载make 4.2.1版本的示例:

wget http://ftp.gnu.org/gnu/make/make-4.2.1.tar.gz

🌟解压下载的文件:

tar -xzvf make-4.2.1.tar.gz

🌟进入解压后的目录:

cd make-4.2.1

🌟配置构建:

./configure --prefix=/usr/local

这里–prefix=/usr/local指定了安装位置,您可以根据需要来自定义这个路径,只要确保它不会覆盖系统默认的make工具。

🌟编译make:

make

🌟安装新编译的make:

sudo make install

这将安装make到您在./configure时指定的目录。

🌟最后,检查新版本的make是否正确安装:

/usr/local/bin/make --version

这应该会输出刚刚安装的4.2.1版本信息。
将make cp到/usr/bin 目录

✨安装GCC依赖库

🌟手动下载和安装库:

如果所需版本的库在您的包管理器中不可用,您需要手动下载、编译和安装这些库。您可以从GCC的基础组件页面获取源代码:

https://gcc.gnu.org/pub/gcc/infrastructure/

对于每个库,按照以下步骤进行:

🌟下载源码:

wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz
  ```

🌟解压源码:

tar -xvf gmp-6.1.0.tar.bz2
tar -xvf mpfr-4.1.0.tar.bz2
tar -xvf mpc-1.2.1.tar.gz

🌟配置、编译和安装每个库:

cd gmp-6.1.0
./configure --prefix=/usr/local --disable-shared --enable-static
make
sudo make install
cd ..cd mpfr-4.1.0
./configure --prefix=/usr/local --with-gmp=/usr/local --disable-shared --enable-static
make
sudo make install
cd ..cd mpc-1.2.1
./configure --prefix=/usr/local --with-gmp=/usr/local --with-mpfr=/usr/local --disable-shared --enable-static
make
sudo make install
cd ..

⚠️注意:上面使用了/usr/local作为安装路径以避免与系统包管理器提供的版本冲突,同时使用–disable-shared --enable-static选项编译为静态库以避免运行时搜索动态库的问题。

✨安装GCC

🌟下载gcc 10.2.1的源代码。您可以从GNU的官方FTP站点或一个近期的源码镜像站点获取源码:

wget https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz

🌟解压源代码包:

tar -xzf gcc-10.2.0.tar.gz
cd gcc-10.2.0

🌟gcc构建过程建议建立一个单独的构建目录:

mkdir build
cd build

🌟配置构建环境。根据您的需要,这一步可能涉及多个配置选项。下面是一个基础的配置示例:

../configure --prefix=/usr/local/gcc-10.2.1 --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local

这会设置安装路径为/usr/local/gcc-10.2.0,仅编译C和C++语言的支持,并禁用多库(如果您需要支持32位和64位兼容,不要包括–disable-multilib选项)。

🌟编译gcc。这一步会占用较长的时间,取决于您的系统性能 :

make -j$(nproc)

这里的-j$(nproc)部分会使编译过程使用所有可用的处理器核心,以加快编译进度。

🌟安装编译好的gcc:

sudo make install

如果安装步骤成功,gcc编译器的新版本将被安装到您在configure步骤中指定的路径。

🌟更新PATH变量以使用新版本的gcc:

export PATH=/usr/local/gcc-10.2.0/bin:$PATH

考虑将这行添加到您的.bashrc或.bash_profile中以便持续生效。

🌟确认新版本的gcc已正确安装:

gcc --version

在这里插入图片描述

🌟添加新路径到 LD_LIBRARY_PATH 环境变量:

您可以将此路径添加到 LD_LIBRARY_PATH 环境变量,以便运行程序时系统能够找到新版本的库。在你的终端输入以下命令或添加到您的 shell 配置文件(如 ~/.bashrc 或 ~/.bash_profile)中:

export LD_LIBRARY_PATH=/usr/local/gcc-10.2.0/lib64:$LD_LIBRARY_PATH

更新配置文件后,你需要执行 source ~/.bashrc 或重新登录使其生效。
更新动态链接器(ldconfig)的配置:
为了让这个更改对整个系统有效,您可以创建一个新的 ld.so.conf 文件或者给现有的添加内容,然后运行 ldconfig 来更新缓存。

🌟创建新的 ld.so.conf.d 配置文件:

echo '/usr/local/gcc-10.2.0/lib64' | sudo tee /etc/ld.so.conf.d/gcc1020-libstdc++.conf

🌟更新缓存:

sudo ldconfig

确认 GLIBCXX 版本:
为了确认 libstdc++.so.6.0.28 是否包含了所需的 GLIBCXX_3.4.26 版本,执行以下命令:

strings /usr/local/gcc-10.2.0/lib64/libstdc++.so.6.0.28 | grep GLIBCXX

如果在输出中看到了 GLIBCXX_3.4.26,那么就意味着所需版本的 libstdc++ 已经安装。
在环境中配置 vi /etc/profile 添加如下,然后source /etc/profile(我的环境是在/etc/profile下)

export PATH=/usr/local/gcc-10.2.0/bin:$PATH

✨下载GLIBC源代码:

wget http://ftp.gnu.org/gnu/libc/glibc-2.32.tar.gz
tar xvf glibc-2.32.tar.gz
cd glibc-2.32
创建构建目录并进入:
mkdir build
cd build

🌟配置构建(您可能需要指定不同的–prefix):

../configure --prefix=/usr

🌟编译并测试(测试步骤非常重要,确保新的库不会破坏系统):

make -j$(nproc)
make check

🌟安装新的GLIBC(十分危险,如果出错可能会导致系统不可用):

sudo make install

🌟查看是否安装成功

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows下编译OpenSSL静态库

目录 1. 版本与下载地址 2. 下载与安装VS2015 3. 下载与安装Perl 4. 测试ActivePerl是否安装正确 5. 下载OpenSSL 6. 编译32位OpenSSL静态库 6.1 解压openssl-1.0.2l.tar.gz 6.2 打开VS2015 x86本机工具命令提示符 6.3 输入命令进入到openssl的目录中 6.4 执行配置命…

45、tomcat+课后实验

tomcat 1、tomcat tomcat和php一样,都是用来处理动态页面的。 tomcat也可以作为web应用服务器,开源的。 php .php tomcat .jsp nginx .html tomcat 是用Java代码写的程序,运行的是Java的web应用程序。 tomcat的特点和功能&#xff1a…

运维系列.Nginx中使用HTTP压缩功能

运维专题 Nginx中使用HTTP压缩功能 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550…

鸿蒙系统:未来智能生态的引领者

在当今这个日新月异的互联网领域,操作系统作为连接硬件与软件的桥梁,其重要性不言而喻。随着华为鸿蒙系统(HarmonyOS)的崛起,一场关于操作系统未来的讨论再次被推向高潮。 鸿蒙OS,华为的全新力作&#xff…

注册自定义总线

1、在/sys/bus下注册一个自定义总线 #include<linux/module.h> #include<linux/init.h> #include<linux/kernel.h> #include<linux/kobject.h> #include<linux/slab.h> #include<linux/sysfs.h> #include<linux/device.h> #include…

静态路由配置注意事项及黑洞路由的使用

静态路由 1 . 定义 从管理员处学习到的数据转发路径&#xff0c;就称为静态路由。 2 . 路由表 Proto &#xff1a;协议&#xff08; Protocol &#xff09; Direct — 直连链路Static — 静态路由RIP 、OSPF 等 — 动态路由 Pre : 优先级&#xff08; Preference &#x…

Threejs环境、透视相机、坐标系、光源

文章目录 如何引入threejsnpm方式script方式script module方式 基本流程与坐标摄像机Geometry(几何体)和Material(材质)光源 如何引入threejs 对于很多刚刚上手threejs的朋友&#xff0c;可能第一步引入threejs就出问题了&#xff0c; 明明已经导入了&#xff0c;就是这样问题…

测试状态缩略语

术语和缩写解释Pass当测试用例执行完成后&#xff0c;测试结果符合预期结果的情况下&#xff0c;则该测试用例判断为测试通过Fail当测试用例执行完成后&#xff0c;测试结果与预期不符的情况下&#xff0c;则该测试用例判断为测试不通过。NA表示测试结果为"不适用"或…

dataX入门

下载dataX https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz 然后 下载后解压至本地某个目录&#xff0c;进入bin目录&#xff0c;即可运行同步作业&#xff1a; $ cd {YOUR_DATAX_HOME}/bin $ python datax.py {YOUR_JOB.json} 要求你有python…

[Vulnhub] Stapler wp-videos+ftp+smb+bash_history权限提升+SUID权限提升+Kernel权限提升

信息收集 IP AddressOpening Ports192.168.8.106TCP:21,22,53,80,123,137,138,139,666,3306, Using Nmap for scanning: $ nmap -p- 192.168.8.106 --min-rate 1000 -sC -sV The results are as follows: PORT STATE SERVICE VERSION 20/tcp closed ftp-data…

Tomcat的安全配置

1、生产环境优化 2、部分漏洞修复 转载自风险评估&#xff1a;Tomcat的安全配置&#xff0c;Tomcat安全基线检查加固-CSDN博客

【排序算法】归并排序

目录 一.基本思想 二.递归版本 三.非递归版本 四.特性总结 1.时间复杂度&#xff1a;O(N*logN) 2.空间复杂度&#xff1a;O(N) 3.稳定性&#xff1a;稳定 一.基本思想 归并排序是采用分治法的一个非常典型的应用。它将已经有序的序列合并为完全有序的序列&#xff0c;即…

算法学习day10(贪心算法)

贪心算法&#xff1a;由局部最优->全局最优 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 一、摆动序列&#xff08;理解难&#xff09; 连续数字之间的差有正负的交替&…

如何将libwebsockets库编译为x86架构

在之前的文章中&#xff0c;我们已经详细介绍了如何交叉编译libwebsockets并将其部署到ELF 1开发板上。然而在调试阶段&#xff0c;发现将libwebsockets在Ubuntu环境下编译为x86架构可能更为方便和高效。 通过在主机环境中编译运用x86架构下的libwebsockets库&#xff0c;可以…

2024年,搞AI就别卷模型了

你好&#xff0c;我是三桥君 2022年11月30日&#xff0c;OpenAI发布了一款全新的对话式通用人工智能工具——ChatGPT。 该工具发布后&#xff0c;仅用5天时间就吸引了100万活跃用户&#xff0c;而在短短2个月内&#xff0c;其活跃用户数更是飙升至1亿&#xff0c;成为历史上增…

github的使用

1.如何将代码会滚到某个提交之前 在GitHub上将代码回滚到之前的版本&#xff0c;可以通过Git命令行实现。以下是几种常用的方法来实现回滚&#xff1a; 方法一&#xff1a;使用 git revert git revert 会生成一个新的提交&#xff0c;这个提交会撤销之前的某个提交的更改。这…

【ARMv8/v9 GIC 系列 1.7 -- GIC PPI | SPI | SGI | LPI 中断使能配置概述】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 GIC 各种中断使能配置PPIs(每个处理器私有中断)SPIs(共享外设中断)SGIs(软件生成的中断)LPIs(局部中断)GIC 各种中断使能配置 在ARM GICv3和GICv4架构中,不同类型的中断(如PPIs、SPIs、SGIs和LPIs)可以通过不同的方式进…

allWebPlugin中间件实现ActiveX插件在谷歌、火狐、Edge浏览器使用

下载并安装allWebPlugin中间件 1、请从下面地址下载allWebPlugin中间件产品&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1xUyQDzOabh7mU7J7TYhtig?pwdz3q0 提取码&#xff1a;z3q0 如下图所示&#xff0c;下载最新allWebPlugin_x86_v2.0.0.14_stable_20240707…

CUDA原子操作

代码 #include <cuda_runtime.h> #include <stdio.h>__global__ void atomicAddAndGet(int *result, int *valueToAdd) {// 原子加法int addedValue atomicAdd(result, *valueToAdd);// 通过原子操作后读取值&#xff0c;确保是加法后的值addedValue *valueToAd…

三级_网络技术_04_中小型网络系统总体规划与设计

1.下列关于路由器技术特征的描述中&#xff0c;正确的是()。 吞吐量是指路由器的路由表容量 背板能力决定了路由器的吞吐量 语音、视频业务对延时抖动要求较低 突发处理能力是以最小帧间隔值来衡量的 2.下列关于路由器技术特征的描述中&#xff0c;正确的是()。 路由器的…