{{tag>[cli rpm package RHEL]}} ====== rpm ====== RPM Package Manager. 로컬 RPM 데이터베이스 조회, 패키지 파일 검사, 설치/업그레이드/삭제, 서명 키 import 작업에 사용합니다. ===== Summary ===== ''rpm'' 은 저수준 패키지 관리 도구입니다. 의존성 해결과 저장소 기반 설치는 보통 [[dnf]] 또는 [[yum]] 이 맡고, ''rpm'' 은 설치된 패키지 메타데이터 조회, 파일 소유 패키지 확인, 로컬 ''.rpm'' 파일 검사, 강제 설치/재설치 같은 작업에 직접 사용합니다. ''rpm -i'', ''rpm -U'', ''rpm -F'', ''rpm -e'' 는 시스템 상태를 직접 바꿉니다. 의존성 자동 해결이 필요한 일반 설치/업데이트는 [[dnf]] 또는 [[yum]] 을 우선 사용합니다. ===== Usage ===== rpm -qa rpm -qi bash rpm -ql bash rpm -qf /usr/bin/ssh rpm -q --changelog kernel rpm -ivh package.rpm rpm -Uvh package.rpm rpm -e package-name rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release * ''**rpm** --query [...] PACKAGE'' * ''**rpm** --package [...] FILE.rpm'' * ''**rpm** --install [...] FILE.rpm'' * ''**rpm** --upgrade [...] FILE.rpm'' * ''**rpm** --erase [...] PACKAGE'' ===== Options ===== ==== Query ==== * ''**-q**, **--query**'' 설치된 패키지 정보를 조회합니다. * ''**-a**, **--all**'' 설치된 모든 패키지를 조회합니다. * ''**-i**, **--info**'' 패키지 설명, 버전, 릴리스, 빌드 정보 등을 표시합니다. * ''**-l**, **--list**'' 패키지가 설치한 파일 목록을 표시합니다. * ''**-f**, **--file** PATH'' 지정한 파일을 소유한 패키지를 찾습니다. * ''**-p**, **--package** FILE.rpm'' 아직 설치하지 않은 RPM 파일을 대상으로 조회합니다. * ''**--changelog** PACKAGE'' 패키지 변경 이력을 표시합니다. 기존 기록 예: ''kernel''. ==== Install / Upgrade / Erase ==== * ''**-i**, **--install** FILE.rpm'' 새 패키지를 설치합니다. * ''**-U**, **--upgrade** FILE.rpm'' 기존 패키지를 업그레이드하거나 없으면 설치합니다. * ''**-F**, **--freshen** FILE.rpm'' 이미 설치된 경우에만 업그레이드합니다. * ''**-e**, **--erase** PACKAGE'' 패키지를 제거합니다. * ''**--reinstall** FILE.rpm'' 같은 버전 패키지를 다시 설치합니다. * ''**--test**'' 실제 변경 없이 설치/업그레이드 가능 여부를 점검합니다. * ''**--nodeps**'' 의존성 검사를 건너뜁니다. * ''**--replacepkgs**'' 이미 설치된 패키지도 다시 설치합니다. * ''**--replacefiles**'' 파일 충돌을 무시하고 설치를 진행합니다. * ''**-h**, **--hash**'' 진행 중 hash mark 를 출력합니다. * ''**-v**, **--verbose**'' 상세 출력을 활성화합니다. ==== Verify / Keys / Misc ==== * ''**-V**, **--verify**'' 설치된 패키지 파일 상태를 검증합니다. * ''**--import** PUBLIC_KEY'' 공개 GPG 키를 등록합니다. * ''**--nosignature**'' 패키지 서명 검사를 건너뜁니다. * ''**--nodigest**'' 패키지 digest 검사를 건너뜁니다. * ''**-r**, **--root** ROOT'' 지정한 루트 디렉터리를 기준으로 작업합니다. * ''**--dbpath** DIRECTORY'' RPM 데이터베이스 경로를 바꿉니다. ===== Examples ===== rpm -qa rpm -qi bash rpm -ql bash rpm -qf /usr/bin/ssh rpm -qp --info ./package.rpm rpm -qp --list ./package.rpm rpm -q --changelog kernel rpm -V openssh-clients sudo rpm -ivh ./package.rpm sudo rpm -Uvh ./package.rpm sudo rpm -Fvh ./package.rpm sudo rpm --test -Uvh ./package.rpm sudo rpm -e package-name sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ===== Troubleshooting ===== * 의존성 오류가 나면 ''rpm'' 단독 설치보다 ''dnf install ./package.rpm'' 또는 ''yum localinstall ./package.rpm'' 이 더 안전합니다. * 패키지 파일만 검사하려면 ''**-qp**'' 조합을 사용합니다. 설치된 패키지 조회와 헷갈리기 쉽습니다. * ''**--nodeps**'', ''**--replacefiles**'', ''**--force**'' 는 복구 목적이 아니면 남용하지 않습니다. * GPG 키 삭제는 보통 키 패키지 이름을 먼저 확인한 뒤 ''rpm -e gpg-pubkey-...'' 형태로 수행합니다. ===== Compatibility ===== * RHEL, CentOS, Rocky Linux, AlmaLinux, Fedora 계열에서 기본 패키지 형식으로 사용합니다. * 최신 배포판에서는 저장소 작업 대부분을 [[dnf]] 가 대신하지만, 저수준 메타데이터 조회와 로컬 RPM 파일 검사는 여전히 ''rpm'' 이 기준 도구입니다. ===== Deprecated / Legacy ===== * 일반 사용자 워크플로우에서 직접 ''rpm -i'' 로 설치하는 방식은 의존성 자동 해결이 없어 점점 줄고 있습니다. * ''yum localinstall'' 같은 예전 흐름보다 ''dnf'' 기반 설치가 일반적입니다. ===== Help ===== ++++ rpm --help | Usage: rpm [OPTION...] Query/Verify package selection options: -a, --all query/verify all packages -f, --file query/verify package(s) owning installed file --path query/verify package(s) owning path, installed or not -g, --group query/verify package(s) in group -p, --package query/verify a package file --pkgid query/verify package(s) with package identifier --hdrid query/verify package(s) with header identifier --triggeredby query the package(s) triggered by the package --whatconflicts query/verify the package(s) which require a dependency --whatrequires query/verify the package(s) which require a dependency --whatobsoletes query/verify the package(s) which obsolete a dependency --whatprovides query/verify the package(s) which provide a dependency --whatrecommends query/verify the package(s) which recommends a dependency --whatsuggests query/verify the package(s) which suggests a dependency --whatsupplements query/verify the package(s) which supplements a dependency --whatenhances query/verify the package(s) which enhances a dependency --nomanifest do not process non-package files as manifests Query options (with -q or --query): -c, --configfiles list all configuration files -d, --docfiles list all documentation files -L, --licensefiles list all license files -A, --artifactfiles list all artifact files --dump dump basic file information -l, --list list files in package --queryformat=QUERYFORMAT use the following query format -s, --state display the states of the listed files Verify options (with -V or --verify): --nofiledigest don't verify digest of files --nofiles don't verify files in package --nodeps don't verify package dependencies --noscript don't execute verify script(s) Install/Upgrade/Erase options: --allfiles install all files, even configurations which might otherwise be skipped --allmatches remove all packages which match (normally an error is generated if specified multiple packages) --badreloc relocate files in non-relocatable package -e, --erase=+ erase (uninstall) package --excludedocs do not install documentation --excludepath= skip files with leading component --force short hand for --replacepkgs --replacefiles -F, --freshen=+ upgrade package(s) if already installed -h, --hash print hash marks as package installs (good with -v) --ignorearch don't verify package architecture --ignoreos don't verify package operating system --ignoresize don't check disk space before installing --noverify short hand for --ignorepayload --ignoresignature -i, --install install package(s) --justdb update the database, but do not modify the filesystem --nodeps do not verify package dependencies --nofiledigest don't verify digest of files --nocontexts don't install file security contexts --nocaps don't install file capabilities --noorder do not reorder package installation to satisfy dependencies --noscripts do not execute package scriptlet(s) --notriggers do not execute any scriptlet(s) triggered by this package --oldpackage upgrade to an old version of the package (--force on upgrades does this automatically) --percent print percentages as package installs --prefix= relocate the package to , if relocatable --relocate== relocate files from path to --replacefiles ignore file conflicts between packages --replacepkgs reinstall if the package is already present --test don't install, but tell if it would work or not -U, --upgrade=+ upgrade package(s) --reinstall=+ reinstall package(s) Common options for all rpm modes and executables: -D, --define='MACRO EXPR' define MACRO with value EXPR --undefine=MACRO undefine MACRO -E, --eval='EXPR' print macro expansion of EXPR --target=CPU-VENDOR-OS Specify target platform --macros= read instead of default file(s) --noplugins don't enable any plugins --nodigest don't verify package digest(s) --nosignature don't verify package signature(s) --rcfile= read instead of default file(s) -r, --root=ROOT use ROOT as top level directory (default: "/") --dbpath=DIRECTORY use database in DIRECTORY --querytags display known query tags --showrc display final rpmrc and macro configuration --quiet provide less detailed output -v, --verbose provide more detailed output --version print the version of rpm being used Options implemented via popt alias/exec: --scripts list install/erase scriptlets from package(s) --setperms set permissions of files in a package --setugids set user/group ownership of files in a package --setcaps set capabilities of files in a package --restore restore file/directory permissions --conflicts list capabilities this package conflicts with --obsoletes list other packages removed by installing this package --provides list capabilities that this package provides --requires list capabilities required by package(s) --recommends list capabilities recommended by package(s) --suggests list capabilities suggested by package(s) --supplements list capabilities supplemented by package(s) --enhances list capabilities enhanced by package(s) --info list descriptive information from package(s) --changelog list change logs for this package --changes list changes for this package with full time stamps --xml list metadata in xml --triggers list trigger scriptlets from package(s) --filetriggers list filetrigger scriptlets from package(s) --last list package(s) by install time, most recent first --dupes list duplicated packages --filesbypkg list all files from each package --fileclass list file names with their classes --filecolor list file names with their colors --fileprovide list file names with their provides --filerequire list file names with requires --filecaps list file names with their POSIX1.e capabilities Help options: -?, --help Show this help message --usage Display brief usage message +++ ===== See Also ===== * [[dnf]] * [[yum]] ===== History ===== * codex:: 2026-06-20 ''rpm'' 페이지를 표준 CLI 형식으로 재구성하고 조회/설치/검증 예제를 보강함.