Как правильно обновить glibc?

10

Прошивка моего NAS поставляется с довольно старой версией glibc, а именно 2.5. Чтобы справиться с некоторыми предварительно скомпилированными двоичными файлами, связанными * с glibc2.15, я хотел бы обновить его. Из некоторого простого тестирования в chrootсреде, которую я узнал, простое добавление более нового libc-2.15.soи обновление символической ссылки libc.so.6приведет к непригодности системы; вероятно, из-за libc-2.15.soтого ld-linux.so.3, что он был связан по очереди, что, конечно, также потребовало бы версию 2.15 вместо версии 2.5. Но прежде чем я погрузлюсь в слишком много проб и ошибок,

Как правильно вручную обновить glibc?


* несмотря на то, что они связаны "статически", они все еще динамически связываются с glibc ...

Тобиас Кинцлер
источник
«Чтобы справиться с некоторыми предварительно скомпилированными двоичными файлами (несмотря на то, что они статически связаны, они все еще динамически связываются с glibc ...), связанными с glibc 2.15». Если снять скобки, это сводится к «Чтобы справиться с некоторыми предварительно скомпилированными двоичными файлами, связанными с glibc 2.15.». Я не уверен, что это значит.
Фахим Митха
@FaheemMitha Спасибо за указание на это, я никогда не понимал, что я забыл закончить это предложение - надеюсь, теперь это имеет больше смысла
Тобиас Кинцлер
Да, теперь он читается лучше, хотя наличие этой встроенной скобки не поможет с наглядностью. Я предполагаю, что пересборка прошивки с более новым libc не вариант?
Фахим Митха,
@FaheemMitha Дебракетированный сейчас. Нет, прошивка, к сожалению, содержит некоторые фирменные компоненты: /
Тобиас Кинцлер
Нитпик город. Вы помечаете свой текст знаком *, но используете «1» в своей «сноске». Да, это (часть того, почему) запатентованное программное обеспечение отстой. Ищи бесплатную стороннюю прошивку возможно? Или разработай свой собственный. Легче сказать, чем сделать, само собой разумеющееся.
Фахим Митха

Ответы:

7

Обновление стандартной библиотеки рискованно, поскольку некоторые программы и библиотеки могут зависеть от текущей версии.

Моя рекомендация, если вам нужно запускать более новые программы, это установить полный chroot- дистрибутив. Это требует больше места на диске, но намного проще и менее рискованно, чем пытаться обновить libc. Debian предоставляет инструмент для облегчения установки в chroot: debootstrap . См. Установка двух glibc вместе с Debian / Ubuntu (очень похожая ситуация) для получения более подробных объяснений и Как мне запускать 32-битные программы на 64-битном Debian / Ubuntu? для полного с практическими рекомендациями в немного другой ситуации.

Жиль "ТАК - перестань быть злым"
источник
2
Я боялся , как много ... На самом деле я имею в настоящее время с помощью корневого каталога установки Gentoo. Чтобы скомпилировать двоичные файлы вне chroot, вероятно, было бы проще понизить версию glibc в Gentoo или использовать достаточно старую версию ... Тогда я снова сильно сомневаюсь (или, по крайней мере, надеюсь, что нет), что это окончательный ответ.
Тобиас Кинцлер
Что вы имеете в виду, говоря, что обновление glibc "рискованно"? Glibc обратно совместим, так что в целом должно работать или я что-то здесь не понял?
Нильс
3
@ Nils Чего не хватает, так это разницы между должен и делает . Программы иногда зависят от недокументированного поведения, которое меняется между версиями.
Жиль "ТАК - перестань быть злым"