리눅스에서 각종 패키지를 설치하다 보면
의존성(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이 붙은 패키지는 컴파일을 위한 헤더 및 라이브러리 패키지입니다.
(Ubuntu와 같은 데비안 계열 리눅스 : -dev, CentOS와 같은 레드햇 계열 리눅스 : -devel)
일반적으로 *. h, *. so, *. a 확장자를 가진 파일로 구성되어있습니다.
devel 패키지의 주요 역할은 다른 프로그램들을 위한 라이브러리 역할과 소스코드 컴파일입니다.
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
[Linux] 하위디렉토리까지 파일검색 후 날짜 출력하기 (하위폴더 검색 및 mtime출력) (0) | 2021.08.09 |
---|---|
[Linux] 쉘 초기화 파일(/etc/profile, bashrc, bash_profile 등) 실행 순서 및 설명 (0) | 2021.05.30 |
[Linux] 데이터 랜덤 추출 (sort , shuf) (0) | 2021.02.16 |
엘라스틱서치(elasticsearch)에 IP 설정해서 외부에서 접속하기 (0) | 2020.03.30 |
scp 명령어로 파일 전송하기(AWS에서 로컬로 다운받기 예제) (0) | 2019.12.31 |