首页
学习
活动
专区
工具
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文件。

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

相关·内容

  • ubuntu与centos的对比和选择「建议收藏」

    CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。RedHat Enterprise Linux (RHEL)是企业发行版。它每五年左右更新一次,在系统的稳定性,前瞻性和安全性上有着极大的优势。由于CentOS出自同样的源代码,因此要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。CentOS通常在RedHat的发布后就会很快发行。我们使用CentOS的原因在于RHEL发行版的标准支持服务费用非常高,大约每台服务器800美元左右,对于我们很多拥有数十台甚至上百台服务器的用户来说,这是必须要控制的成本。 Ubuntu是一个以桌面应用为主的Linux操作系统。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。

    02

    官答丨操作系统升级 Openssl 导致 GreatSQL 无法启动

    本问题来自讨论区群,用户使用数据库环境大概介绍如下: 名称版本操作系统CentOS 7系统内核版本3.10.0-1160.118.1.el7.x86_64openssl升级之前版本1.0.2kopenssl升级之后版本1.1.1w数据库版本GreatSQL-8.0.32-25 用户问题 用户提供的问题信息内容如下: 1、Openssl 版本升级之后 GreatSQL 无法启动报错如下: -- Unit mysqld.service has begun starting up. Jun 07 14:03:21 m-node1 mysqld[34078]: /usr/local/GreatSQL/bin/mysqld: /usr/local/openssl/lib/libcrypto.so: version `OPENSSL_1.0.1_EC' not found (required by /usr/local/GreatSQL/bin/../lib/private/libssl.so.10) Jun 07 14:03:21 m-node1 mysqld[34078]: /usr/local/GreatSQL/bin/mysqld: /usr/local/openssl/lib/libcrypto.so: version `libcrypto.so.10' not found (required by /usr/local/GreatSQL/bin/../lib/private/libssl.so.10) Jun 07 14:03:21 m-node1 systemd[1]: mysqld.service: control process exited, code=exited status=1 Jun 07 14:03:21 m-node1 systemd[1]: Failed to start MySQL Server. 2、用户经过检查,再次安装了 GreatSQL 的 rpm 依赖包,依然报错 so 动态库文件问题 $ yum install -y pkg-config perl libaio-devel numactl-devel numactl-libs net-tools openssl openssl-devel jemalloc jemalloc-devel perl-Data-Dumper perl-Digest-MD5 python2 perl-JSON perl-Test-Simple 3、将 GreatSQL 命令配置到环境变量 PATH 中,依然报错 so 动态库文件问题 $ ln -s /usr/local/GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64 /usr/local/greatsql $ vim /etc/profile export PATH=$PATH:/usr/local/greatsql/bin $ source /etc/profile $ mysql -V mysql: /usr/local/openssl/lib/libcrypto.so: version `libcrypto.so.10' not found (required by mysql) mysql: /usr/local/openssl/lib/libssl.so: version `libssl.so.10' not found (required by mysql) 解答用户疑问 根据现象及报错内容分析,推测极可能是在 /usr/local 目录下安装了更高版本的 Openssl,导致动态库链接失败。 这种情况可以把 Openssl 下的 lib 库加载到 LD_LIBRARY_PATH 环境变量中。 解决用户问题 将 Openssl 下的 lib 库加载到 LD_LIBRARY_PATH 环境变量中。 意思也是为了,不将 /usr/local/openssl/lib 加载到 LD_LIBRARY_PATH 中了。 $ vim /etc/profile export LD_LIBRARY_PATH=/usr/lib64 $ source /etc/profile 使用ldd命令检查mysqld是否缺失依赖so库文件 $ ldd mysqld | grep ssl libssl.so.10 => /usr/local/GreatSQL-8.0.32-25-Linux-glibc2.17- x86_64/bin/./../lib/private/libssl.so.10 (0x00007f292ed72000) $ ldd mysql | grep ssl libssl.so => /lib64/libssl.so (0x000

    01
    领券