centos 6.9 升级glibc动态库的详细过程

glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。很多linux的基本命令,比如ls,mv,cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败会导致系统命令不能使用,严重的造成系统退出后无法重新进入,所以操作时候需要慎重,升级之前保存好重要资料。

写这篇笔记的目的其实是我在centos 下想要安装chrome 浏览器时,有报错说glibc (2.14-2.16) 是安装chrome的依赖,所以才打算把自己的测试机升级下glibc动态库。

下面开始正文:

1、首先,查看系统版本和Glibc版本

执行命令查看glibc版本

strings /lib64/libc.so.6 | grep GLIBC_ 

结果如下:

由上面的信息可以看出系统是CentOS 6.9,而centos、redhat 系统为了稳定性,glibc的版本还用的是2.12,而现在都已经2.30版本了,为了保险起见,我决定把它升级到2.17版本。

2、下载软件并升级

wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
tar -xvf glibc-2.17.tar.gz
mkdir glibc-2.17/build
cd glibc-2.17/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make –j4
make install

说明:

1、make 后面的-j4 是针对多核cpu提高编译速度的,数字4是cpu 核心的两倍(最大可设置为cpu核心的两倍)

2、--prefix 后面的路径一定要是/usr, 如果换成其他的都可能会导致失败。

安装完成后,最后输出

红框内这句话基本可以确定是升级成功了!!!O(∩_∩)O哈哈~

3、测试

执行

ldd --version

或者执行

strings /lib64/libc.so.6 | grep GLIBC_

至此,glibc 的版本升级就算是大功告成,期待这篇我经过数次(大概重新编译安装了5次,还包括一次系统大部分命令都无法使用,重启系统后都无法进入,不过还要我用的是虚拟机测试)实验测试才验证过的笔记能够帮到大家,后面我还会分享一个glibc升级时libc.so.6 文件误删或者丢失导致大部分命令失效的解决办法,敬请期待!

总结

以上所述是小编给大家介绍的centos 6.9 升级glibc动态库的详细过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • 详解CentOS 6.5中安装mysql 5.7.16 linux glibc2.5 x86 64(推荐)

    1. 从官网下载 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz 经测试, 本文还适用于如下版本: MySQL-5.7.10-Linux-glibc2.5-x86_64.tar.gz mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz 官网: http://dev

  • centos 6.9 升级glibc动态库的详细过程

    glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现.很多linux的基本命令,比如ls,mv,cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败会导致系统命令不能使用,严重的造成系统退出后无法重新进入,所以操作时候需要慎重,升级之前保存好重要资料. 写这篇笔记的目的其实是我在centos 下想要安装

  • CentOS6升级glibc操作步骤

    目录 背景 编译glibc 2.14 修改软连接 最后 背景 测试环境有一台CentOS 6系统,需要搭建安卓编译环境,但是发现安卓SDK要求glibc最低版本为2.14,CentOS 6默认是2.12的版本,记录下glibc升级过程.升级前请将服务器备份,生产环境不建议操作. 编译glibc 2.14 查看glibc系统版本库,可以使用命令: strings /lib64/libc.so.6 |grep GLIBC_ 接下来下载glibc 2.14并升级: #下载源码包 wget http:/

  • 解决Linux程序编译链接动态库版本的相关问题

    前言 不同版本的动态库可能会不兼容,如果程序在编译时指定动态库是某个低版本,运行是用的一个高版本,可能会导致无法运行.Linux上对动态库的命名采用libxxx.so.a.b.c的格式,其中a代表大版本号,b代表小版本号,c代表更小的版本号,我们以Linux自带的cp程序为例,通过ldd查看其依赖的动态库 $ ldd /bin/cp linux-vdso.so.1 => (0x00007ffff59df000) libselinux.so.1 => /lib64/libselinux.so.1

  • linux 程序、动态库、静态库内部添加版本号和编译时间详解

    给程序和库添加版本号和库,有利于维护和升级. 当然你可以在文件名上体现,比如有个程序叫 yun,文件名写为 yun_1.0.2,但这个需要每次手动维护,而且不能100%确保当前程序就是那个版本.所以,把版本号体现在程序内部,是一个不错的选择. ----------------------------- 我是做法分割线 ------------------------------- 一.可执行程序 程序内部定义版本宏,然后 main 函数通过 -v 参数,打印版本号和编译时间,代码如下: 注:__

  • 深入探讨Linux静态库与动态库的详解(一看就懂)

    库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 一.静态库和动态库的区别1. 静态函数库这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大--空间,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了.当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译.2. 动态函数库这类库的名字一般是libxxx.so;相对于静态

  • 分析Windows和Linux动态库

    摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理.但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植.本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验. 1.引言 动态库(Dynamic Link Library abbr,DLL)技术是程序设计中经常采用的技术.

  • xcode 详解创建静态库和动态库的方法

    xcode 创建静态库和动态库 1.linux中静态库和动态库区别: 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 静态库:这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了.当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译. 动态库:这类库的名字一般是lib

  • Centos6.5升级glibc过程介绍

    目录 场景需求 glibc版本 glibc安装 glibc软链 场景需求 默认的Centos6.5 glibc版本最高为2.12, 而在进行Nodejs开发时项目所依赖的包往往需要更高版本的glibc库支持, 因此在不升级系统的前提下, 需要主动更新系统glibc库. 一般遇到错误libc.so.6: version GLIBC_2.14 not found时表示需要对glibc进行升级了. glibc版本 查看系统glibc库版本可使用如下命令: $ strings /lib64/libc.s

  • Rust应用调用C语言动态库的操作方法

    目录 外部功能接口FFI UDP套接字的读超时 Rust调用C语言动态库中的函数 避免重复造轮子,使用Rust官方C语言库 外部功能接口FFI 虽然高级(脚本)编程语言的功能丰富,表达能力强,但对底层的一些特殊操作的支持并不完善,就需要以其他编程语言来实现.调用其他编程语言的接口,被称为Foreign Function Interface,直译为外部功能接口.该接口通常是调用C语言实现的外部功能模块,因为C语言接近于全能,几乎任何功能都能够实现:正如同使用汇编语言也可以实现很多功能一样,但开发效

  • Linux静态库与动态库实例详解

    Linux静态库与动态库实例详解 1. Linux 下静态链接库编译与使用 首先编写如下代码: // main.c #include "test.h" int main(){ test(); return 0; } // test.h #include<iostream> using namespace std; void test(); // test.c #include "test.h" void test(){ cout<< &quo

随机推荐