c++ - Lampp无法加载共享库
问题描述
我在 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 目录中,但仍然出现错误。到目前为止,我已经用尽了我的选择。我该如何解决这个问题?
解决方案
原来发生错误是因为我将 Red Hat 服务器升级到 RHEL 7.9,而 Lampp 碰巧设置了以下标志:
export LD_ASSUME_KERNEL=2.2.5
3.10.0版本更新后与新内核不兼容。
所以我只是注释掉了这一行。不确定这是否是处理它的正确方法,但至少它可以启动并运行服务。如果有人有更好的方法来处理这种情况,我仍然会提出这个问题。
推荐阅读
- linux - 脚本和命令行中 md5 总和的不同值
- javascript - 使用 Tab 键将焦点设置在有角度的材质上
- javascript - 如何保存最后一个元素并扩展到它?
- filter - ffmpeg过滤复杂错误(烧字幕使用覆盖过滤)
- java - Kotlin 中的多对多休眠
- javascript - 如何在vue js项目中检测用户的firebase身份验证登录状态?
- angular - 角材料表访问tbody
- c# - 带有特殊字符的 ASP.NET MVC 中的 RestAPI Post 方法不起作用
- arrays - jq:从数组中删除元素
- django - Django 和 Vue - Django 标签中的 Vue 变量