공든탑앱 열기

패키지 관리의 개념

리눅스마스터 2급 · 소프트웨어 설치 · 약 8분

쉽게 말하면

프로그램 설치 파일과 설치 정보를 한 상자에 담은 것을 패키지라고 해요. 어떤 프로그램은 다른 프로그램이 먼저 있어야 돌아가는데(의존성), 똑똑한 설치 도구는 필요한 것까지 알아서 같이 설치해 줘요. 앱스토어와 비슷해요.

시험용 정의

패키지는 프로그램 파일, 설정, 설치 정보(의존성·버전)를 한 파일로 묶은 설치 단위다. 레드햇 계열은 .rpm, 데비안 계열은 .deb를 쓰고, 저수준 도구와 저장소를 다루는 고수준 도구로 관리한다.

비유로 이해하기

가구 조립 키트다. 부품(파일)과 설명서(설치 정보)가 한 상자에 들어 있다. 고수준 도구는 "이 가구엔 나사 세트도 필요해요"를 알아서 같이 주문해 주는 점원이다.

자세히

먼저 알아 둘 말

말뜻
의존성어떤 프로그램이 돌아가려면 먼저 있어야 하는 다른 패키지(주로 라이브러리). 예: httpd는 apr, pcre 같은 라이브러리가 있어야 실행된다. 이것이 없으면 설치가 "failed dependencies" 오류로 멈춘다
저장소(repository)배포판이나 단체가 패키지들을 모아 인터넷에 올려 둔 서버. 고수준 도구는 여기서 패키지 목록을 받아 필요한 것을 내려받는다
저수준 도구이미 내려받은 패키지 파일 하나를 설치·삭제·조회하는 도구(rpm, dpkg). 의존성이 빠지면 알려만 주고 직접 구해 오지 않는다
고수준 도구저장소를 뒤져 의존성까지 자동으로 찾아 함께 설치하는 도구(yum·dnf, apt). 내부에서는 저수준 도구를 불러 실제 설치를 맡긴다
GPG 서명패키지를 만든 곳이 전자 서명을 붙여 두면, 설치 전에 공개키로 확인해 중간에 바뀌지 않았는지 검사할 수 있다

계열별 도구

레드햇 계열데비안 계열
패키지 형식.rpm.deb
저수준 (파일 하나 설치·조회)rpmdpkg
고수준 (저장소·의존성 자동)yum, dnf (RHEL 8+)apt, apt-get, aptitude
저장소 설정/etc/yum.repos.d/*.repo/etc/apt/sources.list
GUI 도구GNOME 소프트웨어 등Synaptic 등

배포판별 패키지 도구 한눈에

계열배포판 예오프라인(파일 하나)온라인(저장소·의존성 자동)기타
레드햇RHEL, CentOS, Rocky, Fedorarpmyum, dnfEPEL 추가 저장소: yum install epel-release
데비안Debian, Ubuntudpkgapt-get, apt, aptitudedselect(dpkg의 메뉴형 앞단)
수세SUSE, openSUSErpmzypperYaST(수세의 종합 관리 도구)
아치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 같은 샌드박스 패키지도 있다.

시험에 이렇게 나와요

확인 문제

Q1. rpm으로 패키지를 설치하려는데 "필요한 다른 패키지가 없다(failed dependencies)"는 오류가 났다. 이 문제를 자동으로 해결해 주는 도구는?

  1. tar
  2. yum(dnf)
  3. rpm -e
  4. make
정답 보기

2번 yum(dnf)

rpm·dpkg는 패키지 파일 하나를 설치하는 저수준 도구라 의존성을 직접 해결하지 못한다. yum·dnf·apt 같은 고수준 도구가 저장소에서 필요한 패키지까지 찾아 함께 설치해 준다.

Q2. SUSE 리눅스에서 쓰는 패키지 관리 도구로 짝지어진 것은?

  1. zypper, YaST
  2. yum, rpm
  3. apt, dpkg
  4. pacman, dnf
정답 보기

1번 zypper, YaST

zypper와 YaST다. yum·rpm은 레드햇, apt·dpkg는 데비안, pacman은 아치 리눅스 도구다.

Q3. 온라인 패키지 관리 도구(저장소에서 의존성까지 자동 설치)가 아닌 것은?

  1. dpkg
  2. yum
  3. zypper
  4. apt-get
정답 보기

1번 dpkg

dpkg는 .deb 파일을 직접 설치하는 오프라인 도구.

Q4. rpm 패키지를 deb 패키지로 바꿔 주는 도구는?

  1. dpkg-deb
  2. dselect
  3. rpm2cpio
  4. alien
정답 보기

4번 alien

alien이다. rpm과 deb 같은 서로 다른 패키지 형식을 바꿔 준다. rpm2cpio는 rpm을 cpio 묶음으로 풀어낸다.

Q5. 레드햇 계열과 관계가 없는 패키지 도구는?

  1. yum
  2. dnf
  3. pacman
  4. rpm
정답 보기

3번 pacman

pacman이다. 아치 리눅스의 패키지 도구다. rpm, yum, dnf는 레드햇 계열 도구다.

Q6. 데비안 계열에서 패키지 파일을 직접 설치·조회하는 저수준 도구는?

  1. yum
  2. apt
  3. rpm
  4. dpkg
정답 보기

4번 dpkg

dpkg다. .deb 파일을 직접 다루는 저수준 도구로 의존성을 알아서 풀지 않는다. apt는 의존성까지 해결하는 고수준 도구다.

Q7. httpd-2.4.57-5.el9.x86_64.rpm에서 x86_64가 의미하는 것은?

  1. 버전
  2. 배포판
  3. 아키텍처
  4. 릴리스
정답 보기

3번 아키텍처

아키텍처다. 어떤 CPU용 패키지인지를 뜻한다. 2.4.57이 버전, 5.el9이 릴리스다.

Q8. 의존성을 자동으로 해결해 설치하는 도구로만 묶은 것은?

  1. make, gcc
  2. tar, gzip
  3. yum, apt
  4. rpm, dpkg
정답 보기

3번 yum, apt

yum과 apt다(dnf도). rpm과 dpkg는 패키지 파일 하나를 다루는 저수준 도구라 의존성을 직접 챙겨야 한다.

헷갈리기 쉬운 O·X

rpm 명령은 저장소에서 의존성 패키지를 자동으로 내려받아 설치한다.

정답 보기

X 그건 yum·dnf. rpm은 파일 하나만.

yum 저장소 설정 파일은 /etc/yum.repos.d/ 디렉터리에 둔다.

정답 보기

O 맞는 설명이다.

함께 보면 좋은 개념