Centos7安装Glibc 2.32版本(超详细)_centos glibc-CSDN博客 -- 知识铺 -- 知识铺
✨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版本的示例:
|
|
🌟解压下载的文件:
|
|
🌟进入解压后的目录:
|
|
🌟配置构建:
|
|
这里–prefix=/usr/local指定了安装位置,您可以根据需要来自定义这个路径,只要确保它不会覆盖系统默认的make工具。
🌟编译make:
|
|
🌟安装新编译的make:
|
|
这将安装make到您在./configure时指定的目录。
🌟最后,检查新版本的make是否正确安装:
|
|
这应该会输出刚刚安装的4.2.1版本信息。
将make cp到/usr/bin 目录或者
|
|
✨安装GCC依赖库
🌟手动下载和安装库:
如果所需版本的库在您的包管理器中不可用,您需要手动下载、编译和安装这些库。您可以从GCC的基础组件页面获取源代码:
|
|
对于每个库,按照以下步骤进行:
🌟下载源码:
|
|
#### 🌟解压源码:
bash tar -xvf gmp-6.1.0.tar.bz2 tar -xvf mpfr-4.1.0.tar.bz2 tar -xvf mpc-1.2.1.tar.gz
#### 🌟配置、编译和安装每个库:
bash 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站点或一个近期的源码镜像站点获取源码:
bash wget https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz
#### 🌟解压源代码包:
bash tar -xzf gcc-10.2.0.tar.gz cd gcc-10.2.0
#### 🌟gcc构建过程建议建立一个单独的构建目录:
bash mkdir build cd build
#### 🌟配置构建环境。根据您的需要,这一步可能涉及多个配置选项。下面是一个基础的配置示例:
bash ../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。这一步会占用较长的时间,取决于您的系统性能 :
bash make -j$(nproc)
这里的-j$(nproc)部分会使编译过程使用所有可用的处理器核心,以加快编译进度。
#### 🌟安装编译好的gcc:
bash sudo make install
如果安装步骤成功,[gcc编译器](http://zshipu.com/t/index.html?url=https://so.csdn.net/so/search?q=gcc%E7%BC%96%E8%AF%91%E5%99%A8&spm=1001.2101.3001.7020)的新版本将被安装到您在configure步骤中指定的路径。
#### 🌟更新PATH变量以使用新版本的gcc:
bash export PATH=/usr/local/gcc-10.2.0/bin:$PATH
考虑将这行添加到您的.bashrc或.bash\_profile中以便持续生效。
#### 🌟确认新版本的gcc已正确安装:
bash gcc –version
![在这里插入图片描述](https://cdn.jsdelivr.net/gh/zshipu/imagesv3/2024/202410231703697.png)
#### 🌟添加新路径到 LD\_LIBRARY\_PATH 环境变量:
您可以将此路径添加到 LD\_LIBRARY\_PATH 环境变量,以便运行程序时系统能够找到新版本的库。在你的终端输入以下命令或添加到您的 shell 配置文件(如 ~/.bashrc 或 ~/.bash\_profile)中:
🌟添加新路径到 LD_LIBRARY_PATH 环境变量:
您可以将此路径添加到 LD_LIBRARY_PATH 环境变量,以便运行程序时系统能够找到新版本的库。在你的终端输入以下命令或添加到您的 shell 配置文件(如 ~/.bashrc 或 ~/.bash_profile)中:
|
|
更新配置文件后,你需要执行 source ~/.bashrc 或重新登录使其生效。
更新动态链接器(ldconfig)的配置:
为了让这个更改对整个系统有效,您可以创建一个新的 ld.so.conf 文件或者给现有的添加内容,然后运行 ldconfig 来更新缓存。
🌟创建新的 ld.so.conf.d 配置文件:
bash
echo '/usr/local/gcc-10.2.0/lib64' | sudo tee /etc/ld.so.conf.d/gcc1020-libstdc++.conf
🌟更新缓存:
bash
sudo ldconfig
确认 GLIBCXX 版本:
为了确认 libstdc++.so.6.0.28 是否包含了所需的 GLIBCXX_3.4.26 版本,执行以下命令:
bash
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下)
bash
export PATH=/usr/local/gcc-10.2.0/bin:$PATH
✨下载GLIBC源代码:
bash
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):
bash
../configure --prefix=/usr
🌟编译并测试(测试步骤非常重要,确保新的库不会破坏系统):
bash
make -j$(nproc) make check
🌟安装新的GLIBC(十分危险,如果出错可能会导致系统不可用):
bash
sudo make install
🌟查看是否安装成功
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek002/post/202410/Centos7%E5%AE%89%E8%A3%85Glibc-2.32%E7%89%88%E6%9C%AC%E8%B6%85%E8%AF%A6%E7%BB%86_centos-glibc-CSDN%E5%8D%9A%E5%AE%A2--%E7%9F%A5%E8%AF%86%E9%93%BA--%E7%9F%A5%E8%AF%86%E9%93%BA/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com