Хотя технически это сделать не проблема - просто поменять в нужных бинарниках пути на новые. Но это ломает всю систему повторяемой сборки, версионирования пакетов в Nix, то есть бессмысленно в рамках этой системы.
Надо чтобы бинарник именно предъявлял требования, а линковщик сам подбирал наиболее подходящие под них библиотеки
А смысл? Зачем это нужно?
Так и делается в обычном линуксе. Проблем порождает больше чем решает.
Подходящие библиотеки - это те, с которыми приложение было собрано, а в идеале - с которыми оно тестировалось разработчиком. Подменять их совсем не нужно.
Я понимаю так, @cvs-255 хочет чтобы в системе штатным образом стояли старая и новая версии программы скомпилированные в разное время у которых одна и таже библиотека с одним и тем же названием бы имела совершенно разные свойства.
То что я предложил это решает, но требует переработки ядра.
Я понимаю так, @cvs-255 хочет чтобы в системе штатным образом стояли программы скомпилированные в разное время у которых одна и таже библиотека с одним и тем же названием бы имела совершенно разные свойства.
NixOS. Всё.
И без переработки ядра. Зачем велосипед изобретаете?
Но так или иначе как я понял из твоего описания без костыля подложить "не свой" пакет нельзя.
Надо чтобы бинарник именно предъявлял требования, а линковщик сам подбирал наиболее подходящие под них библиотеки.
Нельзя (в NixOS), надо все пересобирать.
Хотя технически это сделать не проблема - просто поменять в нужных бинарниках пути на новые. Но это ломает всю систему повторяемой сборки, версионирования пакетов в Nix, то есть бессмысленно в рамках этой системы.
Ну или переименовать библиотеку.
В общем NixOS тоже не тянет.
Так какие конкретно цели, и что не тянет? Можешь четко сформулировать? И ответить на вопрос - это надо чтобы что?
А смысл? Зачем это нужно?
Так и делается в обычном линуксе. Проблем порождает больше чем решает.
Подходящие библиотеки - это те, с которыми приложение было собрано, а в идеале - с которыми оно тестировалось разработчиком. Подменять их совсем не нужно.
Я понимаю так, @cvs-255 хочет чтобы в системе штатным образом стояли старая и новая версии программы скомпилированные в разное время у которых одна и таже библиотека с одним и тем же названием бы имела совершенно разные свойства.
То что я предложил это решает, но требует переработки ядра.
NixOS. Всё.
И без переработки ядра. Зачем велосипед изобретаете?
И кстати ядро то тут причем. За динамическую линковку интерпретатор ld.so отвечает, а не ядро.
То есть для решения проблемы @cvs-255 достаточно написать свою версию ld.so и добиться её принятия в апстрим?
Ну насколько я понял по твоему изложению, для решения проблемы cvs-255 достаточно установить NixOS и перестать дурить людям голову. ld.so там обычный.
Возможно, имелось в виду что-то другое, тогда надо обсуждать.