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.