♪(´▽`) 여러분 반갑습니다 파바샐도 팀입니다.
너무 당연한 듯 사용하고 있는 리눅스 패키지 종류에 대하여 잘 알고 계시나요?
오늘은 리눅스 패키지를 정리해 보도록 하겠습니다.
리눅스 패키지란?
리눅스 패키지(Linux Package)란 리눅스 시스템에서 소프트웨어를 실행하는데 필요한 파일들(실행파일, 설정 파일, 라이브러리 등)이 담겨 있는 설치 파일 묶음입니다.
패키지는 종류는 소스 패키지(Source Package)와 바이너리 패키지(Binary Package)가 있습니다.
소스 패키지(Source Package)는 말 그대로 소스 코드(C언어..등)가 들어 있는 패키지로 컴파일 과정(configure, make, make install 명령어)을 통해 바이너리 파일로 만들어야 실행할 수 있습니다.
즉, 소스 패키지는 설치할 때 컴파일 작업도 진행되므로 설치 시간이 길고 컴파일 작업 과정에서 오류가 발생할 수 있다.
바이너리 패키지(Binary Package)는 성공적으로 컴파일 된 바이너리 파일이 들어있는 패키지입니다.
이미 컴파일이 되어 있으니 소스 패키지에 비해 설치 시간도 짧고 오류가 발생할 가능성도 적습니다.
따라서 리눅스의 기본 설치 패키지들은 대부분 바이너리 패키지입니다.
리눅스 배포판에 따라서 서로 다른 패키지 형식을 지원하는데 대부분 다음의 3가지 중 하나를 지원합니다.
- Debian 계열 (Debian, Ubuntu 등) : .deb 파일
- RedHat 계열 (RedHat, CentOS) : .rpm 파일
- openSUSE 계열 : openSUSE를 위해 특별히 빌드된 .rpm 파일
Ububtu에서는 /var/cache/apt/archives 디렉터리에 다양한 .deb 파일들이 보관되어 있습니다.
이러한 패키지를 관리하기 위해선 패키지 관리 도구를 사용하는데, 일반적으로 다음 두 유형의 패키지 관리 도구가 사용됩니다.
저수준 툴(low-level tools) : 실제 패키지의 설치, 업데이트, 삭제 등을 수행
고수준 툴(high-level tools) : 의존성의 해결, 패키지 검색 등의 기능을 제공
구분 저수준 툴 고수준 툴
데비안계열 dpkg apt-get / apt
레드헷계열 rpm yum
openSUSE rpm zypper
( 위의 표는 리눅스 배포판 별로 저수준/고수준 패키지 도구를 나타내었습니다. )
저장소가 기록된 파일
- /etc/apt/sources.list
source.list에 적혀있는 정보
- deb or deb-src : 바이너리 패키지 저장소(Binary Package Repositories)와 소스 패키지 저장소(Source Package Repositories) 중 어떤 저장소를 사용하는지를 의미
- repository url : 해당 저장소의 주소를 의미
- distribution : 릴리즈하는 리눅스 버전 이름을 의미
- component :
main(표준으로 제공되는 무료 오픈소스 소프트웨어),
restricted(공식적으로 지원하는 사유(유료) 소프트웨어),
universe(커뮤니티에 의해 유지되고 지원되는 오픈소스(무료) 소프트웨어),
multiverse(공식적으로 지원되지 않는 사유(유료) 소프트웨어)를 의미
apt와 dpkg의 차이
ubuntu, debian ..등 데비안 계열에서 사용
dpkg
dpkg는 window환경에서는 exe 파일과 비슷한 설치파일이며,
deb 확장명으로 불립니다.
이를 package라 부르며, dpkg로 파일을 설치할 때는, *.deb 설치파일이 이미 작업환경에서 존재하고 있을때 아래와 같이 설치할 수 있습니다.
dpkg는 해당 패키지만 설치를 진행하고 해당 패키지에 종속되어 설치되야하는 프로그램을 같이 설치해주지는 않습니다. (A패키지가 설치되기 위해서 B패키지가 필요할경우, 해결이 까다로움)
이를 해결하기위하여 apt-get을 사용한다.
apt-get
저장소의 url가 /etc/apt/sources.list 에 작성되어 있다면 인터넷을 통해서 해당 저장소에서 파일을 다운로드해서 설치한다.
이 방식은 dpkg와 달리 종속된 프로그램이 만약 작업환경에 미설치되어있다면 추가 수동설치 필요없이 자동으로 설치해준다.
다음시간에 더 알려드릴게요 좋은 하루 보내세요 (❁´◡`❁)
'OS > Linux' 카테고리의 다른 글
tar (0) | 2022.07.25 |
---|---|
편리한 로그 수집을 위한 Apache Log4j 소개 (0) | 2022.07.17 |
Tomcat 일자별 로그 순환 및 삭제 (catalina.out) (0) | 2022.07.01 |
[Linux] ssh 접속 (0) | 2022.06.24 |
리눅스 레드마인(Redmine) 설치 방법 (0) | 2022.06.15 |
댓글