리눅스 패키지 관리
IT 위키
더 많은 작업
리눅스에서 소프트웨어를 설치·갱신·삭제하는 방법을 정리한 문서이다. 배포판 계열마다 패키지 형식과 관리 도구가 다르고, 패키지가 없을 때는 소스를 직접 컴파일해 설치한다.
| 계열 | 패키지 형식 | 저수준 도구 | 고수준 도구(의존성 자동 해결) | 저장소 설정 |
|---|---|---|---|---|
| 레드햇 계열 (RHEL, Rocky, Fedora) | .rpm | rpm | dnf, yum | /etc/yum.repos.d/*.repo |
| 데비안 계열 (Debian, Ubuntu) | .deb | dpkg | apt, apt-get, apt-cache | /etc/apt/sources.list |
| SUSE 계열 | .rpm | rpm | zypper | /etc/zypp/repos.d/ |
- 저수준 도구는 받은 패키지 파일 하나를 설치하며 의존성을 스스로 해결하지 않는다.
- 고수준 도구는 저장소에서 패키지와 의존 패키지를 함께 내려받아 설치한다.
- Rocky Linux 8에서 yum은 dnf를 가리키는 링크이므로 두 명령의 사용법이 같다.
패키지 파일 이름은 이름-버전-릴리스.배포판.아키텍처.rpm 형식이다. 예: httpd-2.4.37-56.el8.x86_64.rpm
| 작업 | 명령 |
|---|---|
| 설치 (진행 표시) | rpm -ivh 파일.rpm |
| 업그레이드 (없으면 설치) | rpm -Uvh 파일.rpm |
| 설치된 것만 업그레이드 | rpm -Fvh 파일.rpm |
| 삭제 | rpm -e 패키지명 |
| 의존성 무시 | --nodeps |
| 설치 여부 확인 | rpm -q 패키지명 |
| 전체 목록 | rpm -qa |
| 패키지 정보 | rpm -qi 패키지명 |
| 설치된 파일 목록 | rpm -ql 패키지명 |
| 설정 파일 목록 | rpm -qc 패키지명 |
| 파일이 속한 패키지 | rpm -qf /경로/파일 |
| 설치 전 파일 정보 확인 | rpm -qip 파일.rpm, rpm -qlp 파일.rpm |
| 의존성 확인 | rpm -qR 패키지명 |
| 설치 파일 변조 검사 | rpm -V 패키지명, rpm -Va |
| 서명 키 가져오기 | rpm --import 키파일 |
| 작업 | 명령 |
|---|---|
| 설치 | dnf install 패키지 |
| 삭제 | dnf remove 패키지 |
| 업데이트 확인 / 실행 | dnf check-update / dnf update (dnf upgrade) |
| 검색 | dnf search 키워드 |
| 정보 | dnf info 패키지 |
| 목록 | dnf list installed, dnf list available |
| 파일을 제공하는 패키지 | dnf provides /usr/sbin/httpd |
| 그룹 설치 | dnf groupinstall "그룹명" (dnf group install) |
| 저장소 목록 | dnf repolist |
| 작업 이력 | dnf history |
| 캐시 정리 | dnf clean all |
| 모듈 스트림 | dnf module list, dnf module enable php:7.4 |
| 작업 | dpkg | apt |
|---|---|---|
| 설치 | dpkg -i 파일.deb | apt install 패키지 |
| 삭제 | dpkg -r 패키지 | apt remove 패키지 |
| 설정 파일까지 삭제 | dpkg -P 패키지 | apt purge 패키지 |
| 목록 | dpkg -l | apt list --installed |
| 설치된 파일 목록 | dpkg -L 패키지 | |
| 파일이 속한 패키지 | dpkg -S 파일 | |
| 패키지 상태 | dpkg -s 패키지 | apt show 패키지 |
| 저장소 목록 갱신 | apt update | |
| 설치된 패키지 업그레이드 | apt upgrade | |
| 검색 | apt search 키워드 (apt-cache search) |
패키지로 제공되지 않거나 컴파일 옵션을 바꿔야 할 때 소스 코드를 받아 직접 빌드한다.
# 1) 압축 해제 $ tar xvzf program-1.0.tar.gz $ cd program-1.0 # 2) 환경 검사와 Makefile 생성 (설치 경로 지정) $ ./configure --prefix=/usr/local/program # 3) 컴파일 $ make # 4) 설치 (root 권한) # make install # 빌드 결과물 정리 $ make clean
| 도구 | 확장자 | 압축 / 해제 | tar 옵션 |
|---|---|---|---|
| gzip | .gz | gzip 파일 / gunzip 파일.gz (gzip -d) | z |
| bzip2 | .bz2 | bzip2 파일 / bunzip2 파일.bz2 | j |
| xz | .xz | xz 파일 / unxz 파일.xz (xz -d) | J |
| compress | .Z | compress 파일 / uncompress 파일.Z | Z |
# 묶고 gzip 압축 $ tar cvzf backup.tar.gz /etc # 내용 확인 $ tar tvf backup.tar.gz # 지정한 디렉터리에 풀기 $ tar xvf backup.tar.gz -C /tmp
자세한 내용은 리눅스 tar 문서를 본다.
- rpm -U와 -F의 차이, -qf / -ql / -qc / -qi 조회 옵션
- dnf(yum)와 apt 하위 명령 대응
- 소스 설치 3단계 configure → make → make install과 --prefix
- tar의 압축 옵션 z / j / J 구분