libGL.so.1 불러 오기 오류


48

다양한 소프트웨어 (특히 Steam 및 Yenka)를 실행하려고 할 때 다음과 유사한 오류가 발생했습니다. error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

NVidia Optimus 카드를 사용하여 64 비트 시스템을 실행하고 있습니다 (전용 그래픽 카드가 필요한 특정 Windows 전용 소프트웨어의 경우 이중 부팅). 나는 bumblebee를 설치했고, 권장대로 NVidia에서 다운로드 한 nvidia-current 드라이버를 사용하고 있습니다.

라이브러리 (libGL.so.1)는의 최상위 디렉토리에 /usr/lib없지만에 /usr/lib32/nvidia-current대한 소프트 링크로에 /usr/lib32/nvidia-current/libGL.so.304.64있습니다.

ldconfig -p의 출력 섹션 :

libGL.so.1 (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/libGL.so
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so

분명히 그 이름을 가진 라이브러리가로드되고 /usr/lib/x86_64-linux-gnu있지만로 설치되어 있지만 설치된 소프트웨어가이를 볼 수없는 것 같습니다. Steam의 경우 optirun과 함께 실행하면 작동하지만 Yenka는 그렇지 않습니다. optirun으로 인해 저장된 라이브러리 /usr/lib32/nvidia-current가 사용되어 Steam을 실행할 수 있다고 가정 하므로 Yenka가 실행되지 않는 이유를 알 수 없습니다.

소프트웨어가 왜 일반 메사 라이브러리를 볼 수 없는지, 그리고 Yenka가 nvidia-current 라이브러리를 사용하지 않는 이유를 누구나 설명 할 수 있습니까?

답변:


40

nvidia 드라이버가 설치되면 skype는 nvidia 패키지에서 제공하는 i386 라이브러리를 찾습니다. 존재하지 않기 때문에 mesa에서 제공하는 i386 libGL.so.1을 사용해도됩니다.

(nvidia-325를 사용하여 우분투 그놈 raring) 및 (nvidia-319를 사용하여 우분투 그놈 saucy)에서 테스트하여 다음과 같이 해결할 수있었습니다.

update-alternatives --display i386-linux-gnu_gl_conf

사용 가능한 옵션이 무엇인지 보여줍니다.

i386-linux-gnu_gl_conf - auto mode
  link currently points to /usr/lib/nvidia-325/alt_ld.so.conf
/usr/lib/i386-linux-gnu/mesa/ld.so.conf - priority 500
  slave i386-linux-gnu_xorg_extra_modules: /usr/lib/i386-linux-gnu/xorg/x11-extra-modules
/usr/lib/nvidia-325/alt_ld.so.conf - priority 8602
Current 'best' version is '/usr/lib/nvidia-325/alt_ld.so.conf'

따라서 다음을 수행하십시오.

sudo update-alternatives --config i386-linux-gnu_gl_conf

그런 다음 최선의 대안을 선택하십시오 (i386-linux-gnu / mesa / ld.so.conf를 선택했습니다). 아래 출력에는 대체 i386-linux-gnu_gl_conf (/etc/ld.so.conf 제공)에 대한 두 가지 선택 사항이 있습니다. d / i386-linux-gnu_GL.conf).

  Selection    Path                                     Priority   Status
------------------------------------------------------------
* 0            /usr/lib/nvidia-325/alt_ld.so.conf        8602      auto mode
  1            /usr/lib/i386-linux-gnu/mesa/ld.so.conf   500       manual mode
  2            /usr/lib/nvidia-325/alt_ld.so.conf        8602      manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/i386-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode

완료 한 후 다음을 실행하십시오.

sudo ldconfig

그리고 당신은 끝났습니다.


2
나는 정확히 똑
— 같았고 이것은

성가신-ld.so.conf 옵션 만 있으므로 "링크 그룹 i386-linux-gnu_gl_conf (/etc/ld.so.conf.d/i386-linux-gnu_GL.conf 제공)에는 하나의 대안 만 있습니다. : /usr/lib/i386-linux-gnu/mesa/ld.so.conf. 구성 할 것이 없습니다. "
— dez93_2000

어떤 nvidia 패키지를 설치 했습니까? libgl1-mesa-glx가 설치되어 있습니까? 신뢰할 수있는 libgl1-mesa-glx : i386은 /usr/lib/i386-linux-gnu/mesa/ld.so.conf (및 관련 libGL.so.1 * 라이브러리)를 제공합니다.
— eurythmia

좋은 대답입니다. 내가 엔비디아 드라이버로 전환 한 후 Qt는 프로그램을 실행 오류를 얻고 있었다 - QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked와 [xcb] This is most likely caused by a broken X extension library-이 그것을 정리 다음과 같습니다.
— Matthew 읽기

감사. 14.04에서도 작동합니다. 이것은 다른 프로그램에는 영향을 미치지 않습니다. 그럴까요? 한 가지를 고치는 것처럼 다른 하나는 10을 깰 수 있습니다.
— Sudhir Khanger

51

skype를 설치 한 후에도 같은 문제가 발생하여이 오류를 해결하기 위해 두 가지 중 하나를 수행 할 수 있습니다.

첫 번째 명령은 다음 명령으로 응용 프로그램을 실행합니다 ... 예 : im running skype.

LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype

출처

두 번째로 내가 한 일

sudo nano /etc/ld.so.conf.d/skype.conf

그 안에 다음 줄을 추가하십시오

/usr/lib/i386-linux-gnu/mesa/

저장 후 종료

그리고 마지막으로 실행

sudo ldconfig -v

나는 이것이 libGL.so.1 오류를 해결할 수 있기를 바랍니다.

libGL.so.1을 찾을 수도 있습니다.

   find / -name libGL.so.1

나는 결국 그것을 고칠 수 있었다. 불행히도, 방법을 기억할 수는 없지만 라이브러리에 임의의 심볼릭 링크를 만들고 ldconfig를 많이 실행 한 다음 위에서 언급 한 심볼릭 링크를 제거하는 것으로 구성되어 있습니다. 이제 모든 것이 잘 작동합니다.
— p0llard

이것은 잘 작동했습니다! 드디어! 또한이 단계 전에 @ jdp407이 말한 것을 기억합니다.
— Gundars Mēness

1
이 솔루션은 훌륭하지만 한 번에 하나의 응용 프로그램 만 처리합니다. libGL.so가 필요한 다른 32 비트 응용 프로그램이 있으면 해당 응용 프로그램에 대해 프로세스를 반복해야합니다. 업데이트 대안을 사용하여 전 세계적으로이 환경 설정을 설정하는 것이 가장 좋습니다
— eurythmia

@eurythmia / lib에 복사하여 sudo ldconfig를 실행하면 전역 액세스가 가능합니다
— Qasim

xubuntu에서 슬프게도 나를 위해 작동하지 않습니다. : 무시 됨 "; skype.conf는 /ld.so.conf.d/가 아닌 etc / dbus-1 / system.d에 있으며 다른 파일로 보입니다 ...
— dez93_2000

12

여기서 수정 사항이 작동하지만 더 간단합니다.

경우 skype작동하지 않지만 optirun skype작업을 수행, 당신은 그것을 함께 해결할 수 있습니다 :

sudo apt-get install bumblebee-nvidia --reinstall

(Bumblebee를 AMD 카드와 함께 사용하는 사람들은 동등한 재설치를 수행해야 할 수도 있습니다)

Bumblebee는이 문제를 야기하고 해결하지만, 적용시 수정 사항은 libGL 라이브러리를보다 강력한 카드뿐만 아니라 통합 카드에서도 사용할 수있게 할 때 설치시 발생합니다. Bumblebee를 설치할 때 해당 라이브러리가 아직 설치되어 있지 않은 경우에는 이런 일이 발생하지 않으므로 다시 설치해야합니다. Bumblebee 구성에도 영향을 미치지 않아야하지만이 작업을 마친 후에는 확인할 가치가 있습니다.


3
그것은 나를 위해 잘 작동합니다 ... 감사합니다. 우분투 그놈 14.04
— aditia

1
확실히 가장 쉬운 해결책! 시스템을 최근에 두 번 다시 설치했을 때 설치 순서와 관련이 있음을 알고있었습니다 (Ubuntu 14.04 64bit + Nvidia Optimus 그래픽 카드). 처음 Skype를 설치 한 다음 Bumblebee를 설치했을 때 아무런 문제가 없었습니다. 두 번째로 Bumblebee를 설치 한 다음 Skype를 설치하면이 문제가 발생했습니다. 이 답변에 표시된대로 bumblebee-nvidia를 다시 설치하면 문제가 해결됩니다!
— Sicco

나는 이것이 내 것보다 더 나은 해결책처럼 보인다는 것에 동의합니다.
— eurythmia

2

데스크탑 항목을 편집하십시오.

sudo nano /usr/share/applications/skype.desktop

Exec을 다음과 같이 변경하십시오.

Exec=env PULSE_LATENCY_MSEC=60 LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype %U

이것은 실행됩니다 :

LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1

런처 / 데스크탑 항목으로 시작할 때 스카이프를 실행하기 전에.

응용 프로그램 시작 관리자를 사용하여 시작하는 한 그 후에는 제대로 실행되어야합니다.


파일 libGL.so.1이 해당 경로에 없을 수도 있습니다 (Debian 8 / Jessie에서는 그렇지 않았습니다). 입력해야 할 경로를 찾으 LD_PRELOAD려면 시스템에서 i386 파일을 찾으십시오 sudo find / -name libGL.so.1 2>/dev/null. 나는 그것을 발견 /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1했고 그것을 그것을 사용하여 잘 작동했다 LD_PRELOAD.
— f.ardelian 2019

1

이것이 명확히하는 데 도움이되는지 확실하지 않지만 skype 및 libGL.so.1과 동일한 문제가 있습니다. 또한 옵티머스 카드와 땅벌로 13.04를 실행합니다.

optirun없이 skype를 실행하는 데 문제가 있었지만 제대로 작동했습니다. 매번 optirun과 voila를 실행하도록 데스크탑 파일을 변경했습니다. 결정된!


스카이프에 더 에너지 욕심 많은 카드를 사용하고 있기 때문에 실제로 수정되지 않았습니다. 실제로, 프리머스가 아닌 VirtualGL 브리지를 사용하는 경우, 범블비가 설치되어 있지 않고 항상 엔비디아 카드를 사용한 것처럼 많은 전력을 소모하게됩니다.
— Jon Hanna

1

비슷한 문제가 있었고 64 비트 시스템에 32 비트 라이브러리를 설치하여 해결했습니다. apt-get install ia32-libs


0

공식 스팀 페이지에서 최신 버전을 다운로드하고 필요한 경우 터미널에서 필요한 버전을 다운로드하십시오. 당신이 아직하지 않은 경우 꿀벌 ppa를 추가하는 것보다.

sudo add-apt-repository ppa:bumblebee/stable

이 명령으로 업데이트하십시오.

sudo apt-get update

설치 virtualgl( libgl.so.1Steam에서 나를 위해 오류 를 해결했습니다 )

sudo apt-get install virtualgl

0

시험:

sudo apt-get install libgl1-mesa-glx-lts-utopic:i386
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.