Что может пойти не так с обновлением GLIBC?


9

Недавно я установил программное обеспечение, необходимое моей группе для исследовательского проекта, который начнется в сентябре следующего года. Оказывается, в программном обеспечении есть известная ошибка при использовании glibc 2.12.1. Мой босс спросил, можем ли мы обновить glibc на сервере, который должен его запустить. Кий мое скептическое молчание ....

В какой-то момент мне пришло в голову, что возиться с glibc - это такая же хорошая идея, как возиться с голодной пумой; однако я не смог определить источник этого убеждения. Итак, если я продолжу с этим:

  1. Я делаю что-то грубо глупое (например, я не решу свою проблему, я сделаю кирпичик на своем сервере, или я начну апокалипсис зомби)?
  2. Что может пойти не так?
  3. Что может пойти не так?
  4. Как мне избежать ответов на 2 и 3?

3
Во-первых, проверьте, есть ли в вашем дистрибутиве обновления glibc, которые исправляют ошибку. Определенный glibc дистрибутива может содержать много обратных портов / исправлений к его glibc по сравнению с официальным glibc, но версия дистрибутива остается той же.

1
Пока у вас есть какой-нибудь загрузочный сменный носитель (USB-флешка, CD, DVD), машина не будет полностью кирпичной. Спасение будет возможно путем переустановки glibc оттуда. Чтобы избежать какой-либо опасности, вы можете попробовать скомпилировать новый glibc от имени пользователя без полномочий root, а --prefix=$HOMEзатем указать LD_LIBRARY_PATHна него и посмотреть, работает ли он. Будучи пользователем без полномочий root, вы не можете испортить всю систему, как бы плохо вы не испортили. Если это сработает, измените его --prefix=/usr/local/bleeding-edge-glibcи запишите LD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/libв качестве требования для исследовательского проекта
Алан Карри

1
Не можете обновить дистрибутив? И вы должны сказать, используйте, какую glibcошибку вы боитесь, и какое программное обеспечение вы используете. Вы можете исправить свое программное обеспечение (при условии, что у вас есть его исходный код), или иначе настроить вашу систему, чтобы обойти его.

По возможности избегайте использования старого серверного программного обеспечения для новых проектов.
Майкл Хэмптон

Ответы:


5

Часто можно скомпилировать более свежий libc, и одна часть программного обеспечения использует другую библиотеку для всех остальных.

Самая большая проблема между версиями libc - локальное хранилище потоков, IIRC. Если вы проходите этот рубеж, все ставки отменены.

Сказав все это, я настоятельно рекомендую вам просто обновить дистрибутив до чего-то современного. Обновление по частям может привести к боли, из-за которой вы преследуете хвост в течение нескольких месяцев.


2

Вы можете обратиться к таблице совместимости, чтобы определить бинарно-совместимые версии.

Обычно не проблема обновить glibc до более новой версии, но вы должны собрать его с теми же флагами конфигурации, которые используются в вашем дистрибутиве (см. Файл спецификации в соответствующем пакете SRPM).

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.