상세 컨텐츠

본문 제목

Install Opencv - libGL.so.1 error

데이터 과학

by Taeyoon.Kim.DS 2023. 11. 2. 18:50

본문

Opencv는 참 개떡같은 library인데, 설치시에는 pip install python-opencv로 해줘야하고 import는 cv2로 해줘야하는데 부를때는 opencv라고 부른다. 

 

컴퓨터 비전을 튜토리얼이라도 돌려본 사람에게는 대부분 확인하게 되는 error가 libGL.so.1 없음 에러이다. 공부하는 단계에서는 튜토리얼이나 강의를 따라하니까 구글 콜랩이나 캐글, 아마존 세이지메이커 등에서 돌려볼테고 각 환경이 해당 파일까지 미리 다운로드 한 상태라면 모르겠지만, 아무튼 저런 류의 에러는 항상 나게되고, 항상 구글에 검색하게 된다. 


설명:
libGL.so.1 에러는 OpenGL 라이브러리와 관련된 에러입니다. libGL.so.1은 OpenGL 라이브러리의 공유 객체 파일을 가리키며, 이 파일이 시스템에 없거나 경로가 잘못되었을 때 발생할 수 있습니다. OpenCV는 몇몇 기능에서 OpenGL을 사용하기 때문에, libGL.so.1 파일이 없으면 에러가 발생할 수 있습니다. 이 문제를 해결하려면, 시스템에 해당 라이브러리를 설치해야 합니다. 대부분의 리눅스 배포판에서는 패키지 관리자를 사용하여 libgl1 또는 관련 패키지를 설치하면 됩니다. 예를 들면, Ubuntu나 Debian 시스템에서는 다음 명령어를 사용하여 설치할 수 있습니다:

sudo apt-get install libgl1-mesa-glx

그런데 이 libgl1-mesa-glx는 필요이상으로 커다란 사이즈를 가지고 있어서, 

RUN apt-get update && apt-get install -y --no-install-recommends \
        libgl1 \
        libglib2.0-0 \

이런 형태로 다운로드 받을 것을 추천하는 사람도 있지만 결과적으로는 docker container에서 에러를 내니 유의. 

 

Amazon Ec2 istance에서 다운로드를 받을 때는 아래의 형태로 사이즈를 줄일 수 있다.

sudo yum install -y mesa-libGL-devel-18.3.4-5.amzn2.0.1.x86_64

 

저 mesa-glx의 경우 gui의 기능을 담고 있어서 크다는 것이다. gui 필요없으니 다운로드 해줄 필요도 없지만, 저 라인 이외에 효과적인 라인을 찾지 못해서 일단 내버려둔다. 

관련글 더보기