행궁동 데이터 엔지니어

반응형

출처 : https://velog.io/@binogood68/ImportError-libmysqlclient.so.18-cannot-open-shared-object-file-No-such-file-or-directory

리눅스에서 각종 패키지를 설치하다 보면
의존성(Dependency) 문제로 아래와 같이 libxml2-devel, openssl-devel 같은 devel 패키지를 설치해야 하는 경우가 많습니다 (데비안계열인 우분투의 경우 libxml2-dev, openssl-dev)

레드햇 계열 배포판(CentOS) 시스템 라이브러리 설치 예시
(출처 : https://firedev.tistory.com/m/entry/CentOS-CentOS-설치-후-설정)

yum -y install zlib curl yum -y install gcc g++ cpp gcc-c++ compat-gcc-34-g77 yum -y install libxml2 libxml2-devel yum -y install gd gd-devel yum -y install freetype freetype-devel yum -y install libpng libpng-devel yum -y install libjpeg libjpeg-devel yum -y install fontconfig fontconfig-devel yum -y install mhash mhash-devel yum -y install libmcrypt libmcrypt-devel yum -y install openssl openssl-devel yum -y install gmp gmp-devel yum -y install flex yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel

 

dev, devel 패키지란?

리눅스에서 dev, devel이 붙은 패키지는 컴파일을 위한 헤더 및 라이브러리 패키지입니다.

(Ubuntu와 같은 데비안 계열 리눅스 : -dev, CentOS와 같은 레드햇 계열 리눅스 : -devel)
일반적으로 *. h, *. so, *. a 확장자를 가진 파일로 구성되어있습니다.
devel 패키지의 주요 역할은 다른 프로그램들을 위한 라이브러리 역할소스코드 컴파일입니다.

  • 위의 소스코드 컴파일 의미 : Linux에서 mysql-8.0.1.tar.gz 같은 소스파일로 프로그램을 설치하는 것


devel 패키지에 포함된 주요 파일 확장자를 요약하면 아래 그림과 같습니다.

파일 확장자 명 설명
*.h 파일 헤더 파일로 소스코드 파일. ex) C의 stdio.h 파일
*.so 파일 동적(Dynamic) 라이브러리로 Shared Object의 약자, 윈도우의 DLL(Dynamic Link Library)와 같은 역할을 함

프로그램 실행 중에 동적으로 링크
(프로그램에 라이브러리가 포함되지 않음 - 컴파일 시 어떤 *.so 라이브러리를 사용하는지만 포함되어 동적으로 연결하여 사용)
*.a 파일 정적(Static) 라이브러리로 Archive Library를 의미

컴파일 할 때 .a 라이브러리가 포함됨. 파일에 포함되기에 .a파일이 없어도 프로그램이 돌아가지만 용량이 커지고 버전관리가 .so 파일을 링크한 것에 비해 힘듦


기타 궁금하신 사항은 댓글 남겨주세요.

감사합니다.

참고자료

1. 우분투 한국포럼, -dev는 무슨 의미인가요?, https://forum.ubuntu-kr.org/viewtopic.php?t=17299
2. stackoverflow, What are *-devel packages?, https://stackoverflow.com/questions/2358801/what-are-devel-packages
3. PHPschool, gd-devel에서 devel 이란 접미사들은 뭔가요?, https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_install&wr_id=92822
4. 갓대희의 작은공간, DLL이란?, https://goddaehee.tistory.com/185

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band