Redhat/CentOS - 找不到“GLIBC_2.18”

Posted

技术标签:

【中文标题】Redhat/CentOS - 找不到“GLIBC_2.18”【英文标题】:Redhat/CentOS - `GLIBC_2.18' not found 【发布时间】:2019-08-17 05:31:45 【问题描述】:

我正在尝试使用特定模块运行 redis 服务器(在 CentOS 服务器上):

redis-server --loadmodule ./redisql_v0.9.1_x86_64.so

并得到错误:

Module ./redisql_v0.9.1_x86_64.so failed to load: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ./redisql_v0.9.1_x86_64.so)

这是linux版本:

uname
Linux

cat /etc/*release
CentOS Linux release 7.6.1810 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

CentOS Linux release 7.6.1810 (Core)
CentOS Linux release 7.6.1810 (Core)

这也是/lib64/libc.so.6 显示的内容:

/lib64/libc.so.6
GNU C Library (GNU libc) stable release version 2.17, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.8.5 20150623 (Red Hat 4.8.5-36).
Compiled on a Linux 3.10.0 system on 2019-01-29.
Available extensions:
    The C stubs add-on version 2.1.2.
    crypt add-on version 2.1 by Michael Glad and others
    GNU Libidn by Simon Josefsson
    Native POSIX Threads Library by Ulrich Drepper et al
    BIND-8.2.3-T5B
    RT using linux kernel aio
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

还有:

rpm -qa | grep glibc
glibc-common-2.17-260.el7_6.3.x86_64
glibc-devel-2.17-260.el7_6.3.x86_64
glibc-2.17-260.el7_6.3.x86_64
glibc-headers-2.17-260.el7_6.3.x86_64

也试过了:

yum install glibc* -y
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: repos-va.psychz.net
 * extras: repos-va.psychz.net
 * updates: repos-va.psychz.net
Package glibc-devel-2.17-260.el7_6.3.x86_64 already installed and latest version
Package glibc-utils-2.17-260.el7_6.3.x86_64 already installed and latest version
Package glibc-2.17-260.el7_6.3.x86_64 already installed and latest version
Package glibc-headers-2.17-260.el7_6.3.x86_64 already installed and latest version
Package glibc-static-2.17-260.el7_6.3.x86_64 already installed and latest version
Package glibc-common-2.17-260.el7_6.3.x86_64 already installed and latest version
Nothing to do

在 Centos/Redhat 服务器上安装/设置 GLIBC_2.18 的过程是什么?

谢谢..

【问题讨论】:

【参考方案1】:

您可以升级到 glibc 2.28 附带的 Red Hat Enterprise Linux 8,从而提供 GLIBC_2.18 符号版本(以及更多)。

如果您不想升级,则需要为 Red Hat Enterprise Linux 7 构建 Redis。Red Hat 提供了一个带有 Redis 3.2 的软件集(可在 scl 频道中获得)。还有一个CentOS build of Redis 3.2,同样是一个软件集合。如果该版本太旧,您将不得不从源代码构建 Redis。 EPEL only contains Redis 3.2 也是。

在 Red Hat Enterprise Linux(或 CentOS)的当前版本中升级 glibc 是 not possible。

【讨论】:

【参考方案2】:

make 无法删除其临时创建的文件的根本原因是 Windows 及其 WSL 使用不区分大小写的 FS。

在 windows 上使用 fsutil,在 linux 上使用 attr(getfattr/setfattr) 来更改区分大小写。

【讨论】:

以上是关于Redhat/CentOS - 找不到“GLIBC_2.18”的主要内容,如果未能解决你的问题,请参考以下文章

Linux/CentOS 升级C基本运行库CLIBC的注意事项(当想解决GLIBC_2.x找不到的编译问题)

GLIBC_2.14 not found

从PhP执行时,PhantomJS无法找到GLIBC

关于arm-linux-gcc已经配置好环境变量可还显示找不到的问题

Redhat/CentOS Linux 系统进入单用户模式

在VM虚拟机中安装Redhat7 / CentOs7