首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么安装的Centos系统使用ld.2.17,而编译相同版本的glibc-2.17会产生ld.so

首先,CentOS是一种基于Red Hat Enterprise Linux(RHEL)源代码构建的开源操作系统。它是一种稳定、可靠且广泛使用的Linux发行版,被广泛应用于服务器环境中。

在CentOS系统中,ld.2.17是指动态链接器(ld.so)的版本号为2.17。动态链接器是一个系统组件,负责在程序运行时将程序所需的共享库加载到内存中,并解析程序与共享库之间的符号引用关系。

编译相同版本的glibc-2.17会产生ld.so的原因是,glibc(GNU C Library)是一个C语言库,提供了许多系统级的函数和服务,包括动态链接器。在编译glibc时,会生成一个新的动态链接器,其版本号与glibc版本号相对应。

当安装CentOS系统时,默认会安装一个特定版本的glibc和对应的动态链接器。这个版本的glibc和动态链接器是经过测试和验证的,与CentOS系统其他组件相互兼容。因此,为了保证系统的稳定性和兼容性,CentOS系统使用的是特定版本的动态链接器。

如果你在CentOS系统中编译相同版本的glibc-2.17,会产生新的ld.so文件。由于这个新的ld.so文件与系统默认的ld.so文件不完全一致,可能会导致一些兼容性问题和错误。因此,为了避免这种情况,建议在CentOS系统中使用系统默认的ld.so文件,而不是编译新的ld.so文件。

总结起来,CentOS系统使用ld.2.17是为了保证系统的稳定性和兼容性。编译相同版本的glibc-2.17会产生新的ld.so文件,可能导致兼容性问题和错误。因此,建议在CentOS系统中使用系统默认的ld.so文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

很多linux基本命令,比如ls,mv,cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败导致系统命令不能使用,严重造成系统退出后无法重新进入,所以操作时候需要慎重,升级之前保存好重要资料...写这篇笔记目的其实是我在centos 下想要安装chrome 浏览器时,有报错说glibc (2.14-2.16) 是安装chrome依赖,所以才打算把自己测试机升级下glibc动态库。...由上面的信息可以看出系统CentOS 6.9,centos、redhat 系统为了稳定性,glibc版本还用是2.12,现在都已经2.30版本了,为了保险起见,我决定把它升级到2.17版本。...至此,glibc 版本升级就算是大功告成,期待这篇我经过数次(大概重新编译安装了5次,还包括一次系统大部分命令都无法使用,重启系统后都无法进入,不过还要我用是虚拟机测试)实验测试才验证过笔记能够帮到大家...总结 以上所述是小编给大家介绍centos 6.9 升级glibc动态库详细过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编及时回复大家

3.4K40

linux登录时候提示字符集有问题解决方法

centos6.5,突然登录时候提示字符集有问题,本人其实已经使用centos7很久,没碰到过这样问题,排查过程也一脸懵逼。...就是各种字符集报错,设置无效,n天后经过不断排查,发现为glibc导致,拍错过程还发现不能使用2.15版本,我擦,赶紧记一下。...),系统也无法登陆了,赶紧修复LD_PRELOAD=/lib64/libc-2.12.so ln -sf /lib64/libc-2.12.so /lib64/libc.so.6 先降2.12,起码字符集故障解决了...具体过程 1.查看系统glibc版本库 strings /lib64/libc.so.6 |grep GLIBC_ ?...都不用替换/lib64/libc.so.6文件,而且文件软链接已指向glibc-2.17,完事了。 以上就是全部相关知识点,希望我们整理内容能够帮助到大家。

1.3K10
  • linux动态库和静态库

    为了在同一系统使用不同版本库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接方式。  ...; -fPIC:表示编译为位置独立(地址无关)代码,不用此选项的话,编译代码是位置相关,所以动态载入时,是通过代码拷贝方式来满足不同进程需要,不能达到真正代码段共享目的。...如果使用 -lbase -lchild,在编译时将出现一些函数undefined,而这些函数实际上已经在base中已经定义; 为什么会有库依赖问题?...但是,为什么系统阻止cp覆盖可执行程序,不阻止覆盖so文件呢?...对于 so 文件,它是靠 ld.so 加载ld.so毕竟也是用户态程序,没有权利去锁定inode,也不应与内核文件系统底层实现耦合。

    12.4K20

    Centos 7.0 安装Mono 3.4 和 Jexus 5.6

    许多书籍、网站在介绍Linux操作方式时,也援引CentOS作为操作接口。...通常CentOS都会在RHEL推出新版本之后,经过一小段时间修改与测试之后再推出新版本,而其版本编号大多也跟随RHEL版本编号,例如目前最新版本CentOS 7,其相对应RHEL版本便是RHEL...安装、配置、操作极为简单,服务社区化,各种问题能得到快速处理,有良好后续服务支撑能力。 一、更新系统安装编译环境,为编译Mono源码做准备。...,进而创建出动态装入程序(ld.so)所需连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序动态链接库名字列表. ) 另外有一点也非常重要,要在编译Mono是指定安装到...jexus本身安装和升级方式并没有发生更多变化,因此对于已经习惯于5.3.1之前版本使用方式用户,你们仍然可以采用之前安装方式。

    1.4K90

    CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4

    许多书籍、网站在介绍Linux操作方式时,也援引CentOS作为操作接口。...通常CentOS都会在RHEL推出新版本之后,经过一小段时间修改与测试之后再推出新版本,而其版本编号大多也跟随RHEL版本编号,例如目前最新版本CentOS 6,其相对应RHEL版本便是RHEL...本文是在Windows Azure云平台上 使用CentOS 6.3 + Mono 3.2 + Jexus 5.4 安装简要教程: 一、更新系统安装编译环境,为编译Mono源码做准备。...Mono 3.2源码编译要求系统中存在一个Mono 2.4以上环境,所以我们按照《32和64位CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0》这篇文章编译安装完成2.10.8...,进而创建出动态装入程序(ld.so)所需连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序动态链接库名字列表. ) 另外有一点也非常重要,要在编译Mono是指定安装

    1.1K100

    32和64位CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0

    目前CentOS是网页服务器用途主机中最广为使用一套Linux发行版。根据统计,目前大约有30%Linux服务器使用CentOS。...通常CentOS都会在RHEL推出新版本之后,经过一小段时间修改与测试之后再推出新版本,而其版本编号大多也跟随RHEL版本编号,例如目前最新版本CentOS 6,其相对应RHEL版本便是RHEL...; 09、具有基础实用入侵检测功能,能自动终止已被识别的非法请求; 10、安装部署非常简便,操作使用极为简单。...,进而创建出动态装入程序(ld.so)所需连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序动态链接库名字列表. ) 另外有一点也非常重要,要在编译Mono是指定安装到...所以,如果你系统只要mono已经成功安装,jexus就可以直接使用,甚至连进一步配置也完全不需要。

    1.1K50

    CVE-2015-0235:Linux glibc高危漏洞检测及修复方法

    缓冲区溢出漏洞 】全面爆发,该漏洞产生是 Qualys 公司在进行内部代码审核时,发现了一个在 GNU C 库(glibc)中存在 __nss_hostname_digits_dots 函数导致缓冲区溢出漏洞...给操作系统及时打补丁,我们(Qualys)已与 Linux 发行商紧密合作,及时发布补丁。 为什么叫做 GHOST? 因为他通过 GetHOST 函数触发。 哪些版本和操作系统受影响?...Centos6.5 离线补丁 先检查本地 glibc 包安装了哪些相关包 rpm -qa|grep glibc ?...Red Had 系列衍生版本 使用方法:参考上文【Centos6.5 离线补丁】修补方法。...注意:打好补丁后必须立即重启操作系统,否则会造成应用业务无法使用

    3.1K40

    CentOS 6 安装 Chrome最简单方法

    我一听这话头大呀,我记得N久之前我也是需要在CentOS 6.5上搞一个基于Chrome爬虫,也是费了很大劲,Chrome官网上早都提示最少CentOS7了,安装一个依赖包时候发现又需要另外一个依赖包...,各种依赖,特别费劲,后来找到了支持CentOS 6 一个版本,才算是完美的解决了,今天也算是重走一遍,记录一下。...一般情况下可能提示glibc版本低,那就升级 strings /lib64/libc.so.6 | grep GLIBC #先检查下已经有的版本 wget http://ftp.gnu.org/gnu.../glibc/glibc-2.17.tar.gz tar -zxvf glibc-2.17.tar.gz cd glibc-2.17 mkdir build cd build ...../contrib/download_prerequisites #这个脚本会自动下载编译gcc所需要gmp,mpfr和mpc三个依赖项,要是网不好不能下载,建议手动下载到当前目录,注释掉这个脚本中3

    1.5K00

    Linux glibc幽灵漏洞测试与修复方法

    glibc除了封装linux操作系统所提供系统服务外,它本身也提供了许多其它一些必要功能服务实现。glibc 囊括了几乎所有的 UNIX 通行标准。...通过这种方式可以绕过32位和64位系统所有现存保护机制(比如SSLR、PIE和NX)。 受glibc-2.2影响GNU C函数最早版本是在2000年11月发布。...这一漏洞曾在2013年5月被修补(在glibc-2.17和glibc-2.18版本之间)。...CentOS & RHEL检查 在centos上执行“rpm -qglibc”命令,如图1所示,显示glibc版本信息为glibc-2.5-118.el5_10.2。...apt-get update && apt-get -y install libc6 2.CentosCentos上执行“yumupdate glibc”后会有一个确认,输入“y”,大概会下载6个安装

    2.2K20

    Linux下安装使用protobuf

    Linux 下安装protobuf 并使用 下载protobuf 在此我使用是protobuf2.5,解压文件之后 ...., user/local/include 都是系统默认路径之一,到这已经都安装好,但是在gcc 编译还是找不到protobuf.so库文件,原因因为在usr/local/lib,下protobuf.so...ld.so 加载共享库时候,从 ld.so.cache 查找。 传统上,Linux 先辈 Unix 还有一个环境变量:LD_LIBRARY_PATH 来处理非标准路经共享库。...ld.so 加载共享库时候,也查找这个变量所设置路经。 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:....当然,这是系统范围内全局有效 环境变量只对当前shell有效。按照惯例,除非你用上述方式指明,loader是不会在当前目录下去找共享库,正如shell不会在当前目前找 可执行文件一样。

    3.9K20

    Opentelemetry社区在gRPC几个链接问题(静态库和动态库混用,musl工具链,符号裁剪)

    而在ELF ABI(Linux)下,情况变得有点不一样了,因为在ELF ABI下整个堆和符号表是整个可执行程序共享ld.so 保证了当多个动态库包含相同符号(通常是链接了相同库)时候,默认选中最早链接进那一个...这种情况下不是说重复符号不存在了,只是仅仅使用了其中一个,并且使用是统一一个。对于函数而言,我们认为所有同名符号代码都是一样(先不考虑多版本问题),所以选择任意一个都不影响结果。...这种方法无法解决其他库也链接 gRPC 和 opentelemetry-cpp 冲突问题,我们只是解决了当用户仅仅使用 opentelemetry-cpp 并编译成动态库, gRPC 使用静态库时问题...总结 上面的问题本质上还是动态库和静态库混合使用问题。由于不同操作系统ABI和行为不一样,导致很难有大一统方法去解决这些问题。也属于C++历史包袱和大家觉得“难”地方之一吧。...这样能尽可能保证平台一致性,减少不必要符号导出以降低链接器负担。但是即便这样,对于head onlyC++库而言,可能导致可见性切换导致一些其他告警(比如macOS上STL)。

    47120

    【Linux】《how linux work》第十五章 开发工具

    如果您找不到这里描述某些工具,可以为Debian/Ubuntu安装build-essential软件包,或者为Fedora/CentOS安装Chapter 15 yum groupinstall软件包...但是开发人员偶尔遇到另一个重要问题,即库应用程序编程接口(API)可能会在一个次要版本与另一个次要版本之间稍有变化,从而破坏已安装软件。...在这里,最好解决方案是预防性:要么使用一致方法来使用-Wl,-rpath安装共享库以创建运行时链接路径,要么简单地使用这些库静态版本。...只要你在运行Linux,这没有问题,但是如果你切换到Solaris或BSD机器并期望相同东西能够工作,你可能感到惊讶。 然而,这就是GNU autotools等多平台构建系统解决问题。...如果tail实际上在你系统/bin不是/usr/bin中,那么运行myscript将产生以下错误: bash: .

    10510

    linux中两种共享代码方式静态库和动态库

    动态库 动态库,就是程序应用启动时候,动态加载,因为它一般是在系统运行时候就已经运行动态库,因此其它应用可以直接使用它,并且同一个动态库可以被多个应用共享使用,在系统中对于一个动态库只会存在一份...如果你程序需要xx.so动态库,系统路径中没有它的话,你可以通过LD_LIBRARY_PATH 将你需要动态库添加到系统路径中。...动态加载器ld.so 在linux系统中,动态库都是通过ld.so来进行管理,它首先会根据应用编译信息查找相对或者绝对路径来查找动态库,然后就会通过环境变量LD_LIBRARY_PATH来查找动态库...当我们使用g++来进行编译时候,-L可以用来指定动态库路径,进行程序动态库链接。...静态库是同程序一同打包,因此它不需要环境依赖,动态库是程序执行时候需要引用,因此它对环境有依赖,这也是为什么很多依赖动态库文件执行时候报错缺少动态库原因,那是操作系统缺少对应动态库导致

    1.2K40

    linux管理共享库

    ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到共享库。 但是,如果需要用到共享库在非标准路经,ld.so 怎么找到它呢?...ld.so 加载共享库时候,从 ld.so.cache 查找。 传统上,Linux 先辈 Unix 还有一个环境变量:LD_LIBRARY_PATH 来处理非标准路经共享库。...ld.so 加载共享库时候,也查找这个变量所设置路经。 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:....4. ldconfig做这些东西都与运行程序时有关,跟编译时一点关系都没有。编译时候还是该加-L就得加,不要混淆了。 5....当然,这是系统范围内全局有效 环境变量只对当前shell有效。按照惯例,除非你用上述方式指明,loader是不会在当前目录下去找共享库,正如shell不会在当前目前找 可执行文件一样。

    3K80

    搭建Linux+Jexus+MariaDB+ASP.NET环境

    1、系统安装编译环境,为编译Mono源码做准备。...,进而创建出动态装入程序(ld.so)所需连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序动态链接库名字列表. ) 另外有一点也非常重要,要在编译Mono是指定安装到...jexus本身安装和升级方式并没有发生更多变化,因此对于已经习惯于5.3.1之前版本使用方式用户,你们仍然可以采用之前安装方式。...从源码包安装MariaDB,它编译需要很长时间,推荐通过CentOSyum方式安装。...兼容代码版本上去,可以从这里获取https://github.com/geffzhang/LoachsMono,使用Visual Studio编译后放到jexus default站点所对应目录/var

    2.3K90

    从程序员角度看ELF

    *.o).init代码执行之后才开始构造为什么放在最后,不把对 __do_global_ctors_aux()调用放在crtbegin.o中呢?...它经   常会被诸如数据库类这样需要加载一系列程序并可将库放在单一目录系统使用,   ● 是否有一个环境符号LD_LIBRARY_PATH,它可以是由分号分隔开可供链接器搜索库目录...为了保持加载程序合理速度,系统设法维护一个缓冲文件,保存最近用过每一   个库全路径文件名,该文件会在一个新库被安装时有一个配置管理程序来更新。   ...当链接器创建一个使用共享库程序时,它会列出程序所使用SONAME不是库   真实名称。...缓冲文件创建程序扫描包含共享库所有目录,查找所有的共享库,提取每一   个SONAME,对于具有相同SONAME多个库,除版本最高外其余忽略。

    99140

    分布式监控系统Zabbix3.2跳坑指南

    zabbix是什么在此就不多作介绍了,可以参考之前文章 零代码如何打造自己实时监控预警系统 ,这篇主要介绍安装及注意事项。 主要分为服务端和客户端安装,客户端又分为Linux、Windows。...服务端安装环境 CentOS6.8 Zabbix3.2 Mysql5.6 Apache PHP56w 环境准备 关闭selinux setenforce 0 进入mysql,创建zabbix用户并授权...里面的php是一个低版本php54w,因此需要安装php56w,并重启httpd 和mysqld服务 修改php配置文件 vim /etc/php.ini post_max_size=16M...总得来说zabbix客户端中windows比linux安装容易。 最后一点就是如果能用CentOS7就尽量用,6.8版本有些基础插件版本低,需要自己升级所以安装时候不是差这就差那。....6.bak (但这样导致整个系统错误,结果悲剧了 登录不了服务器,最后只能找其它方法修复系统,libc.so是一个系统文件,不能随便删除,但在centos7环境下不存在此问题)

    94450
    领券