Как обновить glibc с версии 2.12 до 2.14 на CentOS?

Я не знаю, как обновить glibc с версии 2.12 до 2.14 на CentOS 6.3. Мне нужна ваша помощь.

5 ответов

Вы не можете обновить glibc на Centos 6 безопасно. Однако вы можете легко установить 2.14 вместе с 2.12, затем использовать его для компиляции проектов и т. Д. Вот как:

  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. сборка компакт-диска
  7. ../configure --prefix=/opt/glibc-2.14
  8. сделать -j4
  9. sudo make install
  10. export LD_LIBRARY_PATH = / opt / glibc-2.14 / lib

Я нашел этот источник очень полезным и не имеет много 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

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.

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

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

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

Ошибка:

make [2]: *** [/mnt/lfs/sources/glibc-build/misc/syslog.o] Ошибка 1

Решение:

make clean
make -j2 CFLAGS="-U_FORTIFY_SOURCE -O2 -fno-stack-protector"

Ошибка:

/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"

Для обновления glibc используйте команду ниже

yum -y update glibc

В моем случае соответствующий ответ дал Тревор Робинсон,

В нем говорится, что gcc 5.3.1 слишком старый, но на самом деле он слишком новый. Он ищет gcc 3.4 или 4.x. Для CentOS 6 просто используйте стандартный gcc 4.4 (в отличие от 5.3.1 из devtoolset-4)

У меня была другая версия gcc в пути, которая заставила скрипт настройки сойти с ума

  1. обновить gcc
  2. обновить glibc
  3. обновить LD_LIBRARY_PATH
  4. проверить обновление в порядке?

последнее: вы можете попробовать, сначала сделайте резервную копию своих данных!

Опасная операция, но может быть наиболее эффективным примерпримером

сценарий

Другие вопросы по тегам