LINUX.ORG.RU

Версия glibc и бинарники

 , ,


0

2

Здравствуйте! При разработке окружения рабочего стола возник такой вопрос. Со следующего релиза апплеты будут храниться отдельными *.so либами. И те, которые идут из коробки, и те, которые можно будет устанавливать из магазина апплетов. И, собственно, вопрос: а не возникнет ли проблем при обновлении glibc в системе с этими бинарниками? Не придется ли пользователю через какое-то время после установки перекомпилировать апплеты?


Ответ на: комментарий от anonymous

Через «какое-то» время – обязательно. libc.so.6: versionGLIBC_X.XX’ not found`

Если под обновлением понимать именно обновление, а не откат на старую версию, то такого не будет

annulen ★★★★★
()
Ответ на: комментарий от annulen

Ну не знаю, что значит «именно обновление, а не откат на старую версию», потому что, например, у меня имеется некоторое кол-во старых бинарников, скомпилированных под старые глибцы системе (и к которым нет исходников). На новой системе они срут именно такими сообщениями, и приходится создавать для них специальное окружение. Для кого-то хватает LD_LIBRARY_PATH, а кому-то нужен чрут, чтобы запуститься.

anonymous
()
Ответ на: комментарий от firkax

Система-то нормальная, но не исключаю, что те бинарники были собраны на кривой системе (не я собирал, не знаю). Но опять же, может быть в своё время она считалась прямой, а через какое-то внезапно оказалась кривой.

Короче говоря, я к тому, что нет 100% гарантий, что собранный под современные глибцы бинарник (а уж тем более .so) будет работать под будущими глибцами лет через пять.

anonymous
()
Ответ на: комментарий от anonymous

На новой системе они срут именно такими сообщениями, и приходится создавать для них специальное окружение.

Это странно, я думал, что символы старых версий из новых бинарников не убирают — в этом был весь смысл введения версионирования символов в своё время.

Для кого-то хватает LD_LIBRARY_PATH, а кому-то нужен чрут, чтобы запуститься.

Несистемную glibc невозможно загрузить через LD_LIBRARY_PATH, так как эта переменная обрабатывается кодом из самой glibc. Вместо этого нужно использовать другой загрузчик ELF. См. [1, 2, 3].

[1] Как запустить factorio 2.0.x без обновления системы? (комментарий) [2] Не подхватывается вручную собранная glibc в кастомной директории [3] Древнее зло, излом API/ABI в glibc связанный с errno

annulen ★★★★★
()
Ответ на: комментарий от anonymous

Короче говоря, я к тому, что нет 100% гарантий, что собранный под современные глибцы бинарник (а уж тем более .so) будет работать под будущими глибцами лет через пять.

Хватит упираться. Есть, конечно. Вот собранный под новые может не запуститься со старыми - как повезёт.

firkax ★★★★★
()
Ответ на: комментарий от annulen

Это странно, я думал, что символы старых версий из новых бинарников не убирают — в этом был весь смысл введения версионирования символов в своё время.

Ты всё правильно думал, а анонимус либо врёт, либо сам себе что-то забаговал.

firkax ★★★★★
()