정의되지 않은 기호로 인해 발생한 오류: glXGetProcAddress

정의되지 않은 기호로 인해 발생한 오류: glXGetProcAddress

테스트 데비안 시스템을 마지막으로 dist-upgrade한 후 X가 부팅을 거부했습니다. 다음 오류가 표시됩니다(gnome-session이 시작될 때 표시됨).

기호 조회 오류: /usr/lib/i386-linux-gnu/libcairo.so.2: 정의되지 않은 기호: glXGetProcAddress

게다가 texlive조차도 같은 오류(luatex로 인해 발생)로 업그레이드를 거부합니다.

이 문제를 해결하는 방법을 모르겠습니다. 중요한 라이브러리가 누락되었을 가능성이 있습니까? 그렇지 않다면 이 문제를 일으키는 또 다른 원인은 무엇입니까?

답변1

@Peterfu의답변질문에 매우 가깝습니다.

그래픽 카드는 Matrox G550(mga)이지만 과거에 nvidia가 설치되어 있었고 일부 glx 항목은 여전히 /usr/lib/tls​​.

나는 mga 드라이버에 대한 경험이 없지만 독점적인 glx 구현이 없다는 것을 알고 있으므로 계속해서 메사가 작동하도록 노력했습니다.

설치 후 우리는 전체 경로를 사용하여 libgl1-mesa-glx어떤 패키지가 선택 되고 구문 분석 되었는지 확인 하고 그것이 메사인지 확인하고 어느 패키지에도 라이브러리가 없는지 확인했습니다 .glx-alternative-mesalibcairoldddpkg -SlibGLlibGLcoreldd

라이브러리를 다른 곳으로 옮기자 이번에는 ldd올바른 메사 라이브러리가 사용되고 있음이 나타났습니다. 이때 @zar에게 다시 확인하도록 요청했고 그의 대답은 이번에는 apt-get -f install올바르게 수행되었으며 gdm3오류 없이 실행되었다는 것이었습니다.

버그라고 해도 데비안화되지 않은 엔비디아 드라이버가 고장나서 버그 요청을 처리할 수 없을 것 같습니다.계약.

전용 드라이버 설치가 남아있습니다사악한supposed-to-install-everywhere.run, 나는 그들이 적어도 주요 배포판(무료/무료일 수 있음)과의 협력을 추구하는 대신 자신의 쓰레기를 좋아하는 이유를 이해하지 못합니다 .

답변2

이 오류는 Cairo 설치에 런타임 링크 종속성이 누락되었음을 의미합니다. 기호 이름으로 판단하면 누락/손상된 OpenGL 구현 패키지(아마도 Mesa)입니다. 패키지 관리자가 패키지 종속성(오류의 원인이 될 수 있음)을 수정하고 누락된 필수 구성 요소를 설치하는 경우 Cairo를 다시 설치하는 것이 도움이 될 수 있습니다.

또한 -가 포함된 행을 실행 ldd /usr/lib/i386-linux-gnu/libcairo.so.2하고 확인할 수도 있습니다 => not found. 이는 시스템에서 어떤 라이브러리가 누락되었는지 알려주고, 해당 라이브러리가 포함된 패키지를 검색하여 (다시)설치합니다.

이는 또한 종속성을 업데이트하지 않고 종속 패키지가 업데이트되는 상황의 일반적인 증후군이기도 합니다(예를 들어 독점 드라이버에서 쉽게 발생할 수 있으며 여기서는 해당되는 것으로 밝혀졌습니다).

답변3

RH 명명법: (저도 데비안 패키징 형식을 모릅니다)

나는 그것을 시도하고 다음을 발견했습니다.

  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.내가 얻었어어도비 리더이것을 쫓아라.

답변4

Gnome라이브러리를 기반으로 작성되었으며 라이브러리 GTK+ library에 따라 다릅니다 . 업그레이드하면 어떻게 됩니까? 로컬에서 대신 다시 다운로드하십시오. 각각 이용 및 검색cairocairo libraryre-installapt-cachecairo packages

관련 정보