Re[26]: Поугараем над С++ комьюнити?
От: vdimas Россия  
Дата: 16.11.17 15:56
Оценка:
Здравствуйте, 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. ))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.