[Comm] ldconfig & symlinks

Alexey Novikov =?iso-8859-1?q?Shader_=CE=C1_yandex=2Eru?=
Пн Ноя 24 10:09:24 MSK 2003


Доброго времени суток!

Наткнулся тут на одну проблему (раньше я ее почему-то не замечал).
Итак имеем:
Master 2.0 + 
kernel-std-up-2.4.22-alt7(+kernel-modules-nvidia-4496) +
XFree86-4.3.0(+NVIDIA_GLX +Mesa) +
WineX-3.0

В результате, получается, что в /usr/X11R6/lib имеем:
libGLwrapper.so... (XFree86-libs)
libGL.so.1.2(XFree86-libs)
libGL.so.1.4.5...(Mesa)
libGL.so.nvidia(NVIDIA_GLX)

Проблема в следующем: если сделать ldconfig (без опции -X), то
симлинк libGL.so.1 указывает на libGLwrapper, который, как я понимаю,
грузит свою libGL.so.1.2 и в результате в WineX имеем софтовый рендеринг
без текстур...:( Если его поправить на libGL.so.nvidia, то все OK.
Поправить-то его не проблема, но дело в том, что во многих
rpm-ках (lib<что-то там>.rpm) в post скрипте идет запуск ldconfig
без параметров, в результате чего линк опять слетает.
Отсюда два вопроса:
1. Откуда ldconfig узнает, что надо создать линк на libGLwrapper?
2. Как прибить отдельно взятую symlink, чтобы ldconfig ее не правил?

Придумал несколько workaround'ов на эту тему (не знаю какой из них лучше):
1. rm -f /usr/X11R6/lib/libGLwrapper.so* (вряд ли после этого ldconfig'у
захочется ее переставлять)
2. Поставить установку линки в стартовые скрипты (недостаток - сработает
как в оффтопике - после перезагрузки)
3. Обвязать ldconfig скриптом с опцией -X (недостаток - system wide - бьем
тараканов паровым молотом, где-то это еще аукнется...)

Что еще можно сделать?
-- 
С уважением,
Алексей Новиков




Подробная информация о списке рассылки community