ошибка, вызванная неопределенным символом: glXGetProcAddress

ошибка, вызванная неопределенным символом: glXGetProcAddress

После моего последнего dist-upgrade моей тестовой системы Debian X отказывается запускаться. Я вижу следующую ошибку (которая появляется при запуске gnome-session):

ошибка поиска символа: /usr/lib/i386-linux-gnu/libcairo.so.2: неопределенный символ: glXGetProcAddress

Кроме того, даже texlive отказывается обновляться с той же ошибкой (вызванной luatex).

Я не знаю, как исправить эту проблему: возможно ли, что отсутствует одна важная библиотека? Если нет, то что еще может вызвать эту проблему?

решение1

@peterph'sотвечатьбыл очень близок к проблеме.

Видеокарта была Matrox G550 (mga), но раньше была установлена ​​nvidia и некоторые компоненты glx оставались в /usr/lib/tls.

У меня нет опыта работы с драйвером mga, но, насколько я понимаю, фирменной реализации glx не существует, поэтому мы попытались заставить работать mesa.

После установки libgl1-mesa-glxи glx-alternative-mesaпроверки libcairoс помощью ldd, затем dpkg -Sс помощью полного пути, чтобы понять, из каких пакетов были выбраны libGLи libGLcoreразрешены с помощью ldd, просто чтобы проверить, что это mesa, обе библиотеки не были ни в одном пакете.

Удалил эти библиотеки и на этот раз lddпоказал, что используются правильные библиотеки Mesa. В этот момент я попросил @zar проверить еще раз, и он ответил, что на этот раз все apt-get -f installбыло выполнено правильно и gdm3без ошибок.

Даже если это ошибка, я думаю, мы не сможем выполнить ни один запрос об ошибке, так как не Debian-совместимый драйвер nvidia сломалдоговор.

Установка фирменных драйверов все еще возможна.зло, я не понимаю, почему они предпочитают заниматься своим собственным дерьмом supposed-to-install-everywhere.runвместо того, чтобы попытаться наладить сотрудничество хотя бы с крупными дистрибутивами (что, вероятно, было бы бесплатным).

решение2

Ошибка означает, что в вашей установке Cairo отсутствует зависимость run-time link - судя по имени символа, это пакет реализации OpenGL (возможно, Mesa), который отсутствует/поврежден. Переустановка Cairo может помочь, при условии, что менеджер пакетов исправит зависимости пакетов, которые, вероятно, являются причиной ошибки, и установит все отсутствующие предварительные требования.

Вы также можете запустить ldd /usr/lib/i386-linux-gnu/libcairo.so.2и проверить наличие строк, содержащих => not found- это покажет вам, какая библиотека отсутствует в вашей системе, найти пакет, содержащий ее, и (пере)установить ее.

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

решение3

В номенклатуре RH: (я также не знаю формат упаковки Debian)

Я попробовал и нашел следующее:

  1. # sudo **'yum whatprovides /usr/lib/libGL.so.1'**урожайность:

    *mesa-libGL-9.2.5-1.20131220.fc20.i686 : Mesa libGL runtime libraries and DRI drivers*
    

    А. lddпечатаетЗависимости библиотеки общих объектов, так что это не инструмент для работы, ЕСЛИ только нет проблем с линковкой. Я ничего не нашел.

Я посмотрелДЕЙСТВИТЕЛЬНО ТРУДНОи нашелэтот вопрос

  2. Остальное было легко:

    # nm -D /usr/lib/libGL.so.1 |grep 'glXGetProcAddress'
    00014310 T glXGetProcAddress
    00014310 T glXGetProcAddressARB

   3. Я получилAdobe Readerбежать за этим.

решение4

Gnomeнаписаны в соответствии с GTK+ libraryи это зависит от cairo библиотеки, которая cairo libraryвозникла при обновлении, пожалуйста re-install, скачайте ее не с локального компьютера, пожалуйста, снова загрузите ее. Используйте apt-cacheи ищите каждыйcairo packages

Связанный контент