Здравствуйте, fin_81, Вы писали:
V>>Что такое "токен"? Он был введен для определения бинарной совместимости.
V>>Например, бинарник версии "3.0" с токеном "А" удовлетворит затребованную зависимость "2.0 A", но её не удовлетворит другой бинарник "2.0 B".
_>Затребует приложение "2.0 С", которого нет. Что получит приложение: "длл-хелл" или "хаос версий"?
Получит примерно то же, что получит твой бинарник на NixOS, когда захочет версию glibc.so.7.1, а в наличии будет только glib.so.6.2.
V>>Ведь именно поэтому в Linux невозможно сосуществование бинарников от разных сборок, что эти бинарники несовместимы (конфликтуют), хотя у них одинаковые или совместимые версии. Если бы ввести SxS в Linux, то можно было бы на одной системе иметь пакеты от разных сборок без всяких конфликтов, как это происходит в Windows.
_>SxS можно эмулировать для glibc посредством символьных ссылок
Нельзя и не спорь. Я плотно с этим возился одно время.
_>вплоть до подмены загрузчика (ld.so) прямо из командной строки.
Дудки, ls.so надо подменять ВСЕЙ системе, потому что версионные зависимости должны распространяться транзитивно м/у процессами, но сами эти процессы (каждый из них) не должны этой фигней заниматься. Задача любого бинарника — дать загрузчику получить инфу о своей версии и о версии зависимостей.
А учитывая, что загрузчик — это "сердце" любой операционки... В общем, ты понял. ))
_>Только нужен ли этот комбинаторный взрыв для получения более-менее детерминированной системы?
Откуда там комбинаторный взрыв?
На сегодня поддерживаемый в SxS версий бинарников для различных поколений Windows больше, чем популярных ныне семейств совместимых сборок Linux. А если ограничиться LSB (а ограничиться придётся, потому что ни в какой версии не пропишешь, какие пути корневой FS считать "правильными" и как их интерпретировать), то там остаётся 3-4 конфигурации, где 95% объема бинарников "схлопнется" в общую часть, бо де-факто бинарно совместима м/у сборками.
_>Для винды, где пакетный менеджер — это кнопка "загрузить" на сайте vasya-pupkin.narod.ru, устанавливающий без согласия пользователя сд-эжектор от тындекса, без комбинаторного взрыва никак.
Что-то облом холиварить.
Платные ОСи давно переняли моду линухов — распространяют ПО через авторизованные репозитории — "магазины приложений".
V>>Те же самые проблемы, которые решаются через ональную огороженность от других сборок линухов и даже от собственных сборок (разумеется!), которые имеют другую версию. ))
V>>Трэш и угар, как по мне, но индустрия этим живёт сегодня.
_>Вот именно, "индустрия" живет.
Это не отменяет трэша и угара.
На одной только несовместимости поколений RHEL 5.x/6.x/7.x индустрия теряет многие миллионы ежегодно.
V>>Ну ты бы копнул SxS, там немного совсем.
V>>Это не пакетный менеджер ни в одном из мест.
V>>Это скромная такая, малюсенькая подсистема управления зависимостями.
V>>ЛЮБОЙ адекватный виндовый пакетный менеджер должен сидеть поверх этой базы.
_>Вот именно, sxs — это не пакетный менеджер, это какой-то костыль, с попыткой разрулить зависимости.
Почему добавление к номеру версии всего одного поля (самого важного за всю историю существования версионирования как такового) провоцирует такую попоболь? ))
Это опять холиварным ветром надуло, что ле?
_>Лучше бы сделали нормальный пакетный менеджер.
"Нормальный пакетный менеджер" с колокольни Linux — это такой, где есть исключительно бесплатное ПО и который заточен под нужны исключительно разработчика ПО. Потому что для однократно настраиваемой машинки-лошадки (скажем, платёжного или справочного терминала) никакие пакетные менеджеры не нужны, разумеется. В общем, не зря пакетные менеджеры в линухах являются всего-лишь третьесторонними тулзами, а не частью системы, угу. Даже в Gentoo. ))