Linux / 명령어 / rpm - RPM 패키지와 설치 데이터베이스 조회

rpm은 RPM 형식 패키지 파일과 설치된 패키지 데이터베이스를 조회·검증·관리합니다. 저장소의 패키지와 의존성을 함께 해결하는 일반적인 설치에는 dnf를 우선 사용합니다.

rpm 명령어란?

-q는 설치된 패키지를 조회하고 -p를 함께 쓰면 아직 설치하지 않은 RPM 파일의 정보를 조회합니다. -V는 설치된 파일과 패키지 데이터베이스의 정보를 비교합니다. 변경 결과가 있어도 관리자가 수정한 설정 파일일 수 있으므로 출력만으로 침해를 단정하지 마세요.

기본 문법

rpm [동작] [옵션] 패키지 또는 파일

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man rpm으로 현재 시스템의 설명을 확인하세요.

사용 예제

설치된 패키지 버전 확인

RPM 데이터베이스에서 설치 여부와 버전을 조회합니다.

rpm -q bash

패키지에 들어 있는 파일 보기

설치된 패키지가 제공한 경로를 확인합니다.

rpm -ql bash

설치 전 로컬 RPM 정보 보기

받은 파일의 이름·버전·아키텍처를 조회합니다. 파일 출처와 서명도 별도로 확인해야 합니다.

rpm -qpi ./example.rpm

설치된 RPM 데이터베이스 조회

rpm -q는 로컬 RPM 데이터베이스를 조회합니다. 출력 형식을 고정하면 스크립트에서 패키지 이름을 안정적으로 읽기 쉽습니다.

rpm -q --qf '%{NAME}\n' bash

bash가 설치되어 있다면 예시 출력:

bash

설치되지 않았다면 조회 실패 메시지와 0이 아닌 종료 상태가 나옵니다. rpm은 개별 패키지와 데이터베이스를 다루지만 저장소에서 의존성을 풀어 설치·업그레이드하는 일에는 dnf 또는 해당 배포판의 패키지 관리자를 사용하세요. RPM 파일의 출처와 서명도 확인해야 합니다.

주요 옵션과 형식

옵션·형식 설명
-q 패키지 또는 파일 정보를 조회합니다.
-p 설치된 항목 대신 RPM 파일을 조회 대상으로 삼습니다.
-l / -i 파일 목록 또는 패키지 설명을 표시합니다.
-f 경로 해당 파일을 소유한 패키지를 찾습니다.
-V 설치된 파일을 데이터베이스와 비교해 검증합니다.

사용할 때 주의할 점

rpm -i는 저장소 의존성 해결이 필요한 일반적인 설치에 적합하지 않습니다. 의존성 검사나 서명 검증을 무시하는 강제 옵션은 피하세요. 검증 출력은 패키지 관리자가 수정한 설정도 표시할 수 있으므로 변경 내용을 검토해야 합니다. 배포판별 RPM 버전에서 지원하는 옵션을 확인하세요.

자주 묻는 질문

rpm -q와 rpm -qp는 무엇이 다른가요?

rpm -q는 설치된 패키지 데이터베이스를 조회하고, rpm -qp는 로컬 RPM 파일 자체를 조회합니다.

공식 문서

옵션의 정확한 동작과 구현별 차이는 rpm 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / cat - 파일 내용 출력과 결합

Linux / 명령어 / cat - 파일 내용 출력과 결합

Linux cat 명령어로 텍스트 파일을 출력하고 여러 파일을 이어 붙이는 방법을 설명합니다. 줄 번호 표시, 빈 줄 압축, 리디렉션과 큰 파일 처리 시 주의점도 정리합니다.

Linux / 명령어 / find - 조건으로 파일과 디렉터리 검색

Linux / 명령어 / find - 조건으로 파일과 디렉터리 검색

Linux find 명령어로 경로, 이름, 종류, 크기, 시간과 권한 조건을 조합해 파일을 찾는 방법을 설명합니다. 안전한 exec 사용과 삭제 전 검증도 다룹니다.

Linux / 명령어 / gunzip - gzip 압축 파일 풀기

Linux / 명령어 / gunzip - gzip 압축 파일 풀기

Linux gunzip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / readlink - 심볼릭 링크 대상 경로 확인

Linux / 명령어 / readlink - 심볼릭 링크 대상 경로 확인

Linux readlink 명령어로 심볼릭 링크에 저장된 대상 경로를 확인하는 방법을 설명합니다. 상대 링크, 깨진 링크, 경로 정규화 옵션과 realpath의 차이도 정리합니다.

Linux / 명령어 / lscpu - CPU 아키텍처와 코어 정보 확인

Linux / 명령어 / lscpu - CPU 아키텍처와 코어 정보 확인

Linux lscpu 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux pkill 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / unxz - xz 압축 파일 풀기

Linux / 명령어 / unxz - xz 압축 파일 풀기

Linux unxz 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 네트워크 / IP 확인하는 방법

Linux / 네트워크 / IP 확인하는 방법

Linux에서 ip address와 ip route get으로 인터페이스 주소와 실제 출발지 IP를 확인하는 방법을 설명합니다. 사설·공인 IP, IPv4·IPv6와 컨테이너 환경의 차이도 정리합니다.

Linux / 명령어 / printenv - 환경 변수 값 출력

Linux / 명령어 / printenv - 환경 변수 값 출력

Linux printenv 명령어로 전체 또는 특정 환경 변수 값을 확인하는 방법을 설명합니다. 셸 변수와 환경 변수의 차이, 종료 상태, NUL 구분 출력과 env와의 차이를 정리합니다.

Linux / 명령어 / passwd - 사용자 비밀번호 변경

Linux / 명령어 / passwd - 사용자 비밀번호 변경

Linux passwd 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.