【发布时间】:2021-11-04 05:04:49
【问题描述】:
我在 RHEL 服务器上遇到了一个奇怪的问题。
我正在运行 ./lampp start,试图运行 xampp 服务,但随后出现一堆错误,表明它无法加载共享库:
netstat: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/sh: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
XAMPP: netstat: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/sh: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
/bin/sh: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/opt/lampp/bin/gettext: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
我已经检查并且这些库存在于 /usr/lib64
[root@xxxxxuserlib64]# cd /usr/lib64
[root@xxxxxuserlib64]# ls -al |grep libc.so
-rw-r--r--. 1 root root 253 May 19 2020 libc.so
lrwxrwxrwx. 1 root root 12 Sep 3 18:01 libc.so.6 -> libc-2.17.so
我尝试过运行 ldconfig
[root@xxxxxuserlib64]# ldconfig -v | grep libc
ldconfig: Path `/lib' given more than once
ldconfig: Path `/lib64' given more than once
ldconfig: Can't stat /libx32: No such file or directory
ldconfig: Path `/usr/lib' given more than once
ldconfig: Path `/usr/lib64' given more than once
ldconfig: Can't stat /usr/libx32: No such file or directory
libcommon.so.9.3 -> libcommon.so.9.3.1
libcryptsetup.so.12 -> libcryptsetup.so.12.3.0
libcupscgi.so.1 -> libcupscgi.so.1
libcupsmime.so.1 -> libcupsmime.so.1
libcupsimage.so.2 -> libcupsimage.so.2
libcidn.so.1 -> libcidn-2.17.so
libcupsppdc.so.1 -> libcupsppdc.so.1
libcups.so.2 -> libcups.so.2
libcrack.so.2 -> libcrack.so.2.9.0
libcroco-0.6.so.3 -> libcroco-0.6.so.3.0.1
libcrypto.so.10 -> libcrypto.so.1.0.2k
libcpupower.so.0 -> libcpupower.so.0.0.0
libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11512.0
libcap.so.2 -> libcap.so.2.22
libcgroup.so.1 -> libcgroup.so.1.0.41
libcairo.so.2 -> libcairo.so.2.11512.0
libcollection.so.2 -> libcollection.so.2.1.1
libc.so.6 -> libc-2.17.so
libcap-ng.so.0 -> libcap-ng.so.0.0.0
libcom_err.so.2 -> libcom_err.so.2.1
libcurl.so.4 -> libcurl.so.4.3.0
libcrypt.so.1 -> libcrypt-2.17.so
libcryptsetup.so.4 -> libcryptsetup.so.4.7.0
看起来不错,libc 已加载。
我尝试在 .bashrc 中添加导出 LD_LIBRARY_PATH 变量
[root@xxxxxxuserlib64]# echo $LD_LIBRARY_PATH
/usr/lib:/usr/lib64
[root@xxxxxxuser lib64]#
仍然无济于事,同样的问题。最后,我尝试将 libc 作为 gettext 添加到 sampe 目录中,但仍然出现错误。到目前为止,我已经用尽了我的选择。我该如何解决这个问题?
【问题讨论】:
-
问题在于 netstat 无法加载库。会不会是 netstat 二进制文件是为 32 位编译的,但您在只安装了 64 位库的系统上运行它?