【发布时间】:2017-02-12 08:39:19
【问题描述】:
我尝试将我的 glibc 库更新到 2.7 版本。我的编译过程显示在这里:
../configure --disable-debug --disable-dependency-tracking CFLAGS=\
"-U_FORTIFY_SOURCE -O2 -fno-stack-protector" --disable-silent-rules\
--prefix=/disk2/hyf/lib/glib-2.7
make & make install
由于权限的限制,我不得不将它安装在非默认搜索目录中(例如/usr/local/lib)。
在我将/disk2/hyf/lib/glib-2.7/lib 添加到LD_LIBRARY_PATH 之后,问题就出现了。
键入ls, ll, vim 等正常命令,都会出现错误Segmentation fault。
我上网查了一下,发现有两个原因可能与Segmentation faultissue有关。 (1)glibc-2.7/lib与系统的gcc/lib不兼容(centos系统的gcc版本是gcc 3.4,我也成功安装了gcc-4.9作为替代)
(2) glibc-2.7 安装在非默认路径。
由于任何命令都无法正常工作,我不知道如何解决我的问题。如何解决这个问题?
另外,我的错误是否影响其他用户(我是Linux集群的非sudo用户)?
【问题讨论】:
-
您是否也升级了
loader、pthread等?它们都必须匹配。您可以在旧 loader 上使用(通常类似于/lib64/ld-linux-x86-64.so.2)。 -
感谢您的回复。我还没有升级loader和pthread等。我只是安装了glibc-2.7。
-
升级 glibc 总是很困难,但你也评论说 e. G。 “ls”失败。这可以通过静态编译 coreutils 来防止。这样你至少可以使用 coreutils 工具。 Bash 也可以静态编译。让 gcc+binutils 工作有点困难 - 您可能必须使用单独的构建工具链目录,类似于 LFS(Linux from Scratch)项目正在做的事情,然后才能进行切换。
标签: linux gcc centos system glibc