LINUX.ORG.RU

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

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

Графические приложения слинкованы с библиотекой LibGL.so, которая находится в /usr/lib/x86_64-linux-gnu/libGL.so. В Linux есть несколько реализаций этой библиотеки, открытая из состава mesa и закрытые из состава драйверов Nvidia и AMD. Т.е. в системе может быть установлено несколько драйверов, то реализация каждой соответствующей библиотеки LibGL должна быть установлена в свою отдельную директорию, например что-то вроде /usr/lib64/opengl/nvidia/lib/libGL.so, как это сделано в Gentoo.

Т.к. приложения слинкованы с /usr/lib/x86_64-linux-gnu/libGL.so, то /usr/lib/x86_64-linux-gnu/libGL.so должны быть ссылкой на соответствующую реализацию LibGL, т.е. ссылкой на реализации библиотек из состава драйвера Nvidia.

В Astra же mesa реализация библиотеки ставится сразу в /usr/lib/x86_64-linux-gnu/libGL.so, но в составе пакета с драйвером Nvidia есть тоже своя библиотека и она тоже ставится в /usr/lib/x86_64-linux-gnu/libGL.so.

Пакетный менеджер видит конфликт библиотек и препятствует установке пакета.

Разработчики должны были собрать пакеты таким способом, что бы LibGL из mesa, nvidia и amd ставились в отдельные директории, а в /usr/lib/x86_64-linux-gnu/libGL.so создавались символьные ссылки на конкретную реализацию посредством скрипта, который бы вызывался уже после установки пакета.

В таком случае бы конфликтов не было бы и файлы не перезаписывались.

Т.е. должны быть что-то вроде:

/usr/lib/x86_64-linux-gnu/libGL.so -> /usr/lib64/opengl/mesa/lib/libGL.so
а после установки драйвера nvidia:
/usr/lib/x86_64-linux-gnu/libGL.so -> /usr/lib64/opengl/nvidia/lib/libGL.so
Но там библиотек несколько больше.

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

Графические приложения слинкованы с библиотекой LibGL.so, которая находится в /usr/lib/x86_64-linux-gnu/libGL.so. В Linux есть несколько реализаций этой библиотеки, открытая из состава mesa и закрытые из состава драйверов Nvidia и AMD. Т.е. в системе может быть установлено несколько драйверов, то реализация каждой соответствующей библиотеки LibGL должна быть установлена в свою отдельную директорию, например что-то вроде /usr/lib64/opengl/nvidia/lib/libGL.so, как это сделано в Gentoo.

Т.к. приложения слинкованы с /usr/lib/x86_64-linux-gnu/libGL.so, то /usr/lib/x86_64-linux-gnu/libGL.so должны быть ссылкой на соответствующую реализацию LibGL, т.е. ссылкой на реализации библиотек из состава драйвера Nvidia.

В Astra же mesa реализация библиотеки ставится сразу в /usr/lib/x86_64-linux-gnu/libGL.so, но в составе пакета с драйвером Nvidia есть тоже своя библиотека и она тоже ставится в /usr/lib/x86_64-linux-gnu/libGL.so.

Пакетный менеджер видит конфликт библиотек и препятствует установке пакета.

Разработчики должны были собрать пакеты таким способом, что бы LibGL из mesa, nvidia и amd ставились в отдельные директории, а в /usr/lib/x86_64-linux-gnu/libGL.so создавались символьные ссылки на конкретную реализацию посредством скрипта, который бы вызывался уже после установки пакета.

В таком случае бы конфликтов не было бы и файлы не перезаписывались.