패키지 관리의 개념
쉽게 말하면
프로그램 설치 파일과 설치 정보를 한 상자에 담은 것을 패키지라고 해요. 어떤 프로그램은 다른 프로그램이 먼저 있어야 돌아가는데(의존성), 똑똑한 설치 도구는 필요한 것까지 알아서 같이 설치해 줘요. 앱스토어와 비슷해요.
시험용 정의
패키지는 프로그램 파일, 설정, 설치 정보(의존성·버전)를 한 파일로 묶은 설치 단위다. 레드햇 계열은 .rpm, 데비안 계열은 .deb를 쓰고, 저수준 도구와 저장소를 다루는 고수준 도구로 관리한다.
비유로 이해하기
가구 조립 키트다. 부품(파일)과 설명서(설치 정보)가 한 상자에 들어 있다. 고수준 도구는 "이 가구엔 나사 세트도 필요해요"를 알아서 같이 주문해 주는 점원이다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 의존성 | 어떤 프로그램이 돌아가려면 먼저 있어야 하는 다른 패키지(주로 라이브러리). 예: httpd는 apr, pcre 같은 라이브러리가 있어야 실행된다. 이것이 없으면 설치가 "failed dependencies" 오류로 멈춘다 |
| 저장소(repository) | 배포판이나 단체가 패키지들을 모아 인터넷에 올려 둔 서버. 고수준 도구는 여기서 패키지 목록을 받아 필요한 것을 내려받는다 |
| 저수준 도구 | 이미 내려받은 패키지 파일 하나를 설치·삭제·조회하는 도구(rpm, dpkg). 의존성이 빠지면 알려만 주고 직접 구해 오지 않는다 |
| 고수준 도구 | 저장소를 뒤져 의존성까지 자동으로 찾아 함께 설치하는 도구(yum·dnf, apt). 내부에서는 저수준 도구를 불러 실제 설치를 맡긴다 |
| GPG 서명 | 패키지를 만든 곳이 전자 서명을 붙여 두면, 설치 전에 공개키로 확인해 중간에 바뀌지 않았는지 검사할 수 있다 |
계열별 도구
| 레드햇 계열 | 데비안 계열 | |
|---|---|---|
| 패키지 형식 | .rpm | .deb |
| 저수준 (파일 하나 설치·조회) | rpm | dpkg |
| 고수준 (저장소·의존성 자동) | yum, dnf (RHEL 8+) | apt, apt-get, aptitude |
| 저장소 설정 | /etc/yum.repos.d/*.repo | /etc/apt/sources.list |
| GUI 도구 | GNOME 소프트웨어 등 | Synaptic 등 |
배포판별 패키지 도구 한눈에
| 계열 | 배포판 예 | 오프라인(파일 하나) | 온라인(저장소·의존성 자동) | 기타 |
|---|---|---|---|---|
| 레드햇 | RHEL, CentOS, Rocky, Fedora | rpm | yum, dnf | EPEL 추가 저장소: yum install epel-release |
| 데비안 | Debian, Ubuntu | dpkg | apt-get, apt, aptitude | dselect(dpkg의 메뉴형 앞단) |
| 수세 | SUSE, openSUSE | rpm | zypper | YaST(수세의 종합 관리 도구) |
| 아치 | Arch Linux | - | pacman |
헷갈리기 쉬운 것
- 온라인 도구(인터넷 저장소에서 받아 의존성까지 설치): yum, dnf, apt-get, zypper. rpm·dpkg는 이미 가진 파일을 설치하는 오프라인 도구라 "온라인 패키지 관리 도구가 아닌 것"으로 자주 나온다. YaST도 저장소를 쓰지만 종합 설정 도구라 보기에서 '거리가 먼 것'으로 나오기도 한다
- dnf는 레드햇 계열이다. 데비안 계열 도구가 아니다
- zypper는 수세, pacman은 아치 리눅스다. 레드햇과 무관
- alien: .rpm과 .deb 형식을 서로 변환한다(예:
alien --to-deb 파일.rpm)
패키지 파일 이름 읽기
httpd-2.4.57-5.el9.x86_64.rpm → 이름 httpd, 버전 2.4.57, 릴리스 5.el9(RHEL 9용 5번째 빌드), 아키텍처 x86_64. noarch는 아키텍처 무관(스크립트 등).nginx_1.24.0-2ubuntu7_amd64.deb → 이름_버전-리비전_아키텍처.
설치 방법 세 가지
① 패키지 관리자로 바이너리 패키지 설치(가장 일반적) ② 소스 코드를 받아 컴파일(configure → make → make install) ③ 미리 컴파일된 tar 묶음을 풀어 쓰기. 요즘은 Flatpak, Snap 같은 샌드박스 패키지도 있다.
시험에 이렇게 나와요
- 온라인 패키지 관리 도구가 아닌 것 → rpm, dpkg(오프라인). 보기에 YaST가 거리가 먼 것으로 나오기도 함
- 계열별 도구 짝: 레드햇 yum·dnf·rpm / 데비안 apt-get·dpkg·dselect / 수세 zypper·YaST / 아치 pacman
- 레드햇 계열과 무관한 도구 → zypper, pacman / 데비안 계열과 무관한 도구 → dnf
- RPM ↔ DEB 변환 → alien, EPEL 저장소 추가 패키지 → epel-release
확인 문제
Q1. rpm으로 패키지를 설치하려는데 "필요한 다른 패키지가 없다(failed dependencies)"는 오류가 났다. 이 문제를 자동으로 해결해 주는 도구는?
- tar
- yum(dnf)
- rpm -e
- make
정답 보기
2번 yum(dnf)
rpm·dpkg는 패키지 파일 하나를 설치하는 저수준 도구라 의존성을 직접 해결하지 못한다. yum·dnf·apt 같은 고수준 도구가 저장소에서 필요한 패키지까지 찾아 함께 설치해 준다.
Q2. SUSE 리눅스에서 쓰는 패키지 관리 도구로 짝지어진 것은?
- zypper, YaST
- yum, rpm
- apt, dpkg
- pacman, dnf
정답 보기
1번 zypper, YaST
zypper와 YaST다. yum·rpm은 레드햇, apt·dpkg는 데비안, pacman은 아치 리눅스 도구다.
Q3. 온라인 패키지 관리 도구(저장소에서 의존성까지 자동 설치)가 아닌 것은?
- dpkg
- yum
- zypper
- apt-get
정답 보기
1번 dpkg
dpkg는 .deb 파일을 직접 설치하는 오프라인 도구.
Q4. rpm 패키지를 deb 패키지로 바꿔 주는 도구는?
- dpkg-deb
- dselect
- rpm2cpio
- alien
정답 보기
4번 alien
alien이다. rpm과 deb 같은 서로 다른 패키지 형식을 바꿔 준다. rpm2cpio는 rpm을 cpio 묶음으로 풀어낸다.
Q5. 레드햇 계열과 관계가 없는 패키지 도구는?
- yum
- dnf
- pacman
- rpm
정답 보기
3번 pacman
pacman이다. 아치 리눅스의 패키지 도구다. rpm, yum, dnf는 레드햇 계열 도구다.
Q6. 데비안 계열에서 패키지 파일을 직접 설치·조회하는 저수준 도구는?
- yum
- apt
- rpm
- dpkg
정답 보기
4번 dpkg
dpkg다. .deb 파일을 직접 다루는 저수준 도구로 의존성을 알아서 풀지 않는다. apt는 의존성까지 해결하는 고수준 도구다.
Q7. httpd-2.4.57-5.el9.x86_64.rpm에서 x86_64가 의미하는 것은?
- 버전
- 배포판
- 아키텍처
- 릴리스
정답 보기
3번 아키텍처
아키텍처다. 어떤 CPU용 패키지인지를 뜻한다. 2.4.57이 버전, 5.el9이 릴리스다.
Q8. 의존성을 자동으로 해결해 설치하는 도구로만 묶은 것은?
- make, gcc
- tar, gzip
- yum, apt
- rpm, dpkg
정답 보기
3번 yum, apt
yum과 apt다(dnf도). rpm과 dpkg는 패키지 파일 하나를 다루는 저수준 도구라 의존성을 직접 챙겨야 한다.
헷갈리기 쉬운 O·X
rpm 명령은 저장소에서 의존성 패키지를 자동으로 내려받아 설치한다.
정답 보기
X 그건 yum·dnf. rpm은 파일 하나만.
yum 저장소 설정 파일은 /etc/yum.repos.d/ 디렉터리에 둔다.
정답 보기
O 맞는 설명이다.