LINUX.ORG.RU

История изменений

Исправление James_Holden, (текущая версия) :

А теперь некоторый fun факт на эту тему. Вот возьмем Nix. Технически, там все линкуется динамически. Но фактически - все библиотеки линкуются через прописывание жесткого пути, содержащего уникальный для пакета хеш, в rpath бинарника. То есть вообще невозможно обновить библиотеку не обновляя приложение, от нее зависящее. Фактически - это статическая линковка.

То есть имеем практически целый дистрибутив на идеях статики (хотя чисто технически там и .so). Это дает, кстати, возможность очень легко вытянуть все дерево зависимостей для любого пакета в бандл и потом так запускать на любом другом дистрибутиве.

Еще бонусы. Как и с настоящей статикой, исчезают конфликты между приложениями. В старой системе может быть установлено приложение с новым деревом зависимостей, не влияя на остальную систему. И наоборот. Вручную это везде можно, но в Nix это можно штатно на уровне пакетного менеджера.

Исходная версия James_Holden, :

А теперь некоторый fun факт на эту тему. Вот возьмем Nix. Технически, там все линкуется динамически. Но фактически - все библиотеки линкуются через прописывание жесткого пути, содержащего уникальный для пакета хеш, в rpath бинарника. То есть вообще невозможно обновить библиотеку не обновляя приложение, от нее зависящее. Фактически - это статическая линковка.

То есть имеем практически целый дистрибутив на идеях статики (хотя чисто технически там и .so). Это дает, кстати, возможность очень легко вытянуть все дерево зависимостей для любого пакета в бандл и потом так запускать на любом другом дистрибутиве.