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

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

테스트 데비안 시스템을 마지막으로 업그레이드한 후 X가 시작을 거부합니다. 다음 오류가 표시됩니다(gnome-session이 시작될 때 표시됨).

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

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

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

답변1

@peterph의답변문제에 매우 가깝습니다.

비디오 카드는 Matrox G550(mga)이었지만 과거에는 nvidia가 설치되어 있었고 일부 glx 항목이 /usr/lib/tls.

나는 mga 드라이버를 사용해 본 적이 없지만 독점적인 glx 구현이 없다는 것을 알고 있으므로 우리는 메사가 작동하도록 노력했습니다.

일단 설치 libgl1-mesa-glx하고 with 를 glx-alternative-mesa확인한 다음 어떤 패키지가 선택되고 에 의해 해결되었는지 이해하기 위해 전체 경로를 사용 했습니다. 단지 메사인지 확인하기 위해 두 라이브러리가 어떤 패키지에도 없었습니다.libcairoldddpkg -SlibGLlibGLcoreldd

해당 라이브러리를 다른 곳으로 옮겼고 이번에는 ldd올바른 메사 라이브러리가 사용되었음을 표시했습니다. 이 시점에서 저는 @zar에게 다시 확인하도록 요청했고 그의 대답은 이번에는 apt-get -f install제대로 끝났고 gdm3오류 없이 실행된다는 것이었습니다.

버그임에도 불구하고 데비안화되지 않은 NVIDIA 드라이버가 버그 요청을 처리할 수 없다고 생각합니다.계약.

전용 드라이버 설치가 아직 진행 중입니다.사악한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*
    

    A. 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

관련 정보