Какой вы её видите. В частности интересен способ избегания «ада зависимостей».
1:
Cтатическая линковка:
1 Система превращается в винду, сложность замены библиотек на более новые с исправленными уязвимостями. Но для обновления можно попытаться перелинковать их не перекомпилируя.
2 Дублирование библиотек в рамках дистрибутива. Но в ядре есть функциональность дублирования одинаковых участков оперативной памяти.
3 Не все программы можно так собрать. Glibc не готова для статики, но есть musl.
2:
Установка каждого пакета в собственную папку и управление библиотеками через симлинки:
1 Сложноватая система. Нужен принципиально новый пакетный менеджер.
2 Нужно менять путь к библиотекам при компиляции. Есть случаи когда это невозможно?
3 Многоуровневое файловое дерево.
3:
Установка конфликтующих пакетов в отдельное пространство имён для процесса:
1 Эта технология используется кажется для виртуализации, но можно упростить её для такой цели. Это не докер, а просто ядро будет подставлять например разный /usr/ для разных процессов. Немного похоже на Plan9.
2 Стандартная компиляция. Довольно просто прикрутить к стандартным дистрибутивам.
3 Путаница с пространствами имен.
4 Не охватывает ядро и драйвера.