如何在CentOS上将glibc从2.12升级到2.14?

Tae*_*HOI 20 linux glibc centos

我不知道如何在CentOS 6.3上将glibc从版本2.12升级到2.14.我需要你的帮助.

Uni*_*oks 68

您无法安全地更新Centos 6上的glibc.但是你可以轻松地在2.12旁边安装2.14,然后用它来编译项目等.这是如何:

  1. mkdir~/glibc_install; cd~/glibc_install
  2. wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
  3. tar zxvf glibc-2.14.tar.gz
  4. cd glibc-2.14
  5. mkdir build
  6. cd build
  7. ../configure --prefix =/opt/glibc-2.14
  8. make -j4
  9. sudo make install
  10. export LD_LIBRARY_PATH =/opt/glibc-2.14/lib

  • 这个答案应该被接受了! (11认同)
  • 它说gcc 5.3.1太旧了,但它实际上太新了.它正在寻找gcc 3.4或4.x. 对于CentOS 6,只需使用stock gcc 4.4(而不是devtoolset-4中的5.3.1).或者,你可以破解config.in接受你的版本,重新运行autoconf,看看它是否可行. (3认同)
  • ** NB:**必须使用显式动态链接程序调用来运行所有程序。仅设置`LD_LIBRARY_PATH`可能会在明天中断(例如,如果ld.so和libc.so.6之间的内部`GLIBC_PRIVATE` ABI发生变化)。 (3认同)
  • 当我按照这些步骤操作时,我遇到了错误`无法打开配置文件/opt/glibc-2.14/etc/ld.so.conf:没有这样的文件或目录`,关于为什么以及如何修复它的任何线索? (2认同)

Acc*_*t م 7

我发现这个来源非常有用,并且没有太多的 SEO。它列出了您在使用 @UnitasBrooks 时可能会遇到的最常见错误很好的答案,恐怕将来会丢失。

这是原帖的链接

我将复制,粘贴到这里我遇到了最后一个问题并修复了它,但是我没有尝试列出的所有问题/解决方案,您自行承担风险


Glibc 安装

GNU C 库,通常称为 glibc,是 GNU 项目对 C 标准库的实现。我的环境需要 glibc(2.14 版),需要花一些功夫才能让它工作,所以希望这可以为您节省一些时间。

0.Glibc 安装依赖

Bash: sh
Binutils: ar, as, ld, ranlib, readelf
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mknod, mv, mkdir, rm, touch
Gcc: cc, cc1, collect2, cpp, gcc
Grep: egrep, grep
Gzip: gzip
Make: make
Gawk: gawk
Sed: sed
Sh-utils: date, expr, hostname, pwd, uname
Texinfo: install-info, makeinfo
Textutils: cat, cut, sort, tr
Run Code Online (Sandbox Code Playgroud)

1.下载安装包

http://www.gnu.org/software/libc/ for all versions.
http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz for version 2.14.
Run Code Online (Sandbox Code Playgroud)

2.编译安装

为避免干扰当前环境,请通过配置前缀单独编译安装此版本。

[root@localhost ~]# tar xvf glibc-2.14.tar.gz
[root@localhost ~]# cd glibc-2.14
[root@localhost glibc-2.14]# mkdir build
[root@localhost glibc-2.14]# cd ./build
[root@localhost build]# ../configure --prefix=/opt/glibc-2.14
[root@localhost build]# make -j4
[root@localhost build]# make install
[root@localhost build]# export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

3.检查安装的glibc版本

root@localhost:~/intel64/runtime/glibc$ strings libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_PRIVATE
Run Code Online (Sandbox Code Playgroud)

4.编译错误

错误:

make[1]: *** 没有生成目标/mnt/lfs/sourcenew/glibc-build/Versions.all', needed by/mnt/lfs/sourcenew/glibc-build/abi-versions.h' 的规则。停止。

解决方案:

sudo apt-get install gawk
sudo apt-get install texinfo
Run Code Online (Sandbox Code Playgroud)

错误:

make[2]: *** [/mnt/lfs/sources/glibc-build/misc/syslog.o] 错误 1

解决方案:

make clean
make -j2 CFLAGS="-U_FORTIFY_SOURCE -O2 -fno-stack-protector"
Run Code Online (Sandbox Code Playgroud)

错误:

/Downloads/glibc-2.14/build/elf/ldconfig: 无法打开配置文件 /opt/glibc-2.14/etc/ld.so.conf: 没有那个文件或目录

解决方案:

:/opt/glibc-2.14/etc$ sudo sh -c "echo '/usr/local/lib' >> ld.so.conf" 
:/opt/glibc-2.14/etc$ sudo sh -c "echo '/opt/lib' >> ld.so.conf"
Run Code Online (Sandbox Code Playgroud)


Tec*_*ner -3

要更新 glibc,请使用以下命令

yum -y update glibc
Run Code Online (Sandbox Code Playgroud)

  • @AccountantM CentOS 6(即使OP升级到6.10)的存储库只能转到2.12。在此架构上,2.14 没有“已测试的 glibc 预构建版本”。技术人员没有阅读这个问题,这就是它被否决的原因。更新任何内容都像“yum update”一样简单;这种情况之所以更加复杂,首先需要提出这个问题是有原因的 (6认同)