RPM (Red Hat Package Manager)은 CentOS Fedora, Rocky, Alma Linux 등의 Red Hat 기반 시스템에서 기본적으로 사용되는 오픈 소스 및 널리 사용되는 패키지 관리 유틸리티입니다.
rpm 패키지 관리 도구를 사용하면 시스템 관리자 및 사용자가 Unix/Linux 운영 체제에서 소프트웨어 패키지를 설치, 업데이트, 제거, 쿼리, 확인 및 관리할 수 있습니다. 이는 이전에 .rpm
파일로 알려진 컴파일된 소프트웨어 프로그램 및 패키지에 필요한 라이브러리가 포함되어 있습니다.
이 문서에서는 RPM 명령의 유용한 20가지 예제를 제공합니다. 이 RPM 명령을 사용하여 Linux 시스템에서 패키지의 설치, 업데이트 및 제거를 관리할 수 있습니다.
RPM 사실
RPM (Red Hat Package Manager)에 대한 몇 가지 사실은 다음과 같습니다:
- RPM은 무료로 제공되며 일반 공중 사용 허가서 (GPL)에 따라 출시됩니다.
- RPM은 모든 설치된 패키지의 데이터베이스를 유지 관리하며 이 정보를
/var/lib/rpm
디렉터리에 저장합니다. - RPM은 Linux 시스템에서 패키지를 설치하는 기본적인 방법으로 사용됩니다. 소스 코드를 사용하여 패키지를 설치한 경우 RPM으로 관리되지 않습니다.
- RPM은 ID, 소스, 종속성, 버전 세부 정보 등 패키지에 대한 중요한 정보가 포함된
.rpm
파일과 함께 작동합니다.
RPM 명령의 기본 모드
RPM 명령의 주요 모드는 다음과 같습니다:
- 설치 –
rpm -i
명령어는 시스템에 새 패키지를 설치합니다. - 업그레이드 –
rpm -U
명령어는 기존 패키지를 더 최신 버전으로 업그레이드합니다. - 제거 –
rpm -e
명령어는 시스템에서 패키지를 제거하거나 삭제합니다. - 쿼리 –
rpm -q
명령어는 설치된 패키지에 대한 정보를 RPM 데이터베이스에 쿼리합니다. - 검증 –
rpm -V
명령어는 설치된 패키지 파일의 무결성을 검증합니다. - 새로 고침 –
rpm -F
명령어는 이미 설치된 경우에만 패키지를 업그레이드하거나 설치합니다. - 데이터베이스 재구성 –
rpm --rebuilddb
명령어는 RPM 데이터베이스를 다시 구성하여 데이터베이스 손상 문제를 해결합니다. - GPG 키 가져오기 –
rpm --import
명령어는 패키지 서명 검증에 사용되는 GPG 키를 가져옵니다. - 모두 쿼리 –
rpm -qa
명령어는 시스템에 설치된 모든 패키지를 나열합니다. - 파일 쿼리 –
rpm -ql
명령어는 특정 패키지에 의해 설치된 모든 파일을 나열합니다. - 문서 쿼리 –
rpm -qd
명령어는 패키지에서 제공하는 문서 파일을 나열합니다. - 의존성 쿼리 –
rpm -qR
명령어는 패키지의 런타임 의존성을 나열합니다. - 쿼리 제공 –
rpm -q --provides
명령어는 패키지가 제공하는 기능을 나열합니다. - 쿼리 요구 –
rpm -q --requires
명령어는 패키지에 필요한 종속성을 나열합니다.
RPM 패키지 찾기
Linux 배포판에 따라 RPM 패키지를 찾을 수 있는 여러 장소가 있습니다. 다음은 모든 RPM 패키지를 찾고 다운로드할 수 있는 일반적인 위치입니다.
다음을 기억해야 합니다 root 리눅스에서 패키지를 설치할 때 사용자, 루트 권한으로 rpm 명령어를 적절한 옵션으로 관리할 수 있습니다.
1. RPM 패키지 서명 확인 방법
PGP 서명을 확인하고 리눅스 시스템에 설치하기 전에 패키지의 무결성과 기원이 OK 있는지 확인하십시오.
다음 명령어를 --checksig
(서명 확인) 옵션으로 사용하여 hardinfo라는 패키지의 서명을 확인하십시오.
rpm --checksig hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm: digests OK
2. RPM 패키지 설치 방법
다음 명령어를 -ivh
옵션으로 사용하여 리눅스 시스템에 hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm라는 rpm 패키지를 설치하십시오.
rpm -ivh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:hardinfo-2.0.11-1 ################################# [100%]
위의 명령어의 구성 요소를 분석해 보겠습니다.
-i
: 패키지 설치-v
: 더 좋은 표시를 위한 자세한 정보-h
: 설치 과정을 보여주기 위해 해시 마크(#)를 인쇄합니다.
3. RPM 패키지 설치 전 의존성 확인 방법
예를 들어 패키지를 설치하거나 업그레이드하기 전에 의존성을 확인하고 싶다고 해보자. 예를 들어, 다음 명령을 사용하여 hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm 패키지의 의존성을 확인합니다.
이 명령은 “hardinfo” 패키지가 실행 시 필요로 하는 의존성을 조회하고 표시합니다. 이를 통해 필요한 모든 의존성이 설치 전에 충족되었는지 확인할 수 있습니다.
rpm -qpR hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm libX11.so.6()(64bit) libatk-1.0.so.0()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIBC_2.34)(64bit) libc.so.6(GLIBC_2.38)(64bit) libc.so.6(GLIBC_2.7)(64bit) libcairo-gobject.so.2()(64bit) libcairo.so.2()(64bit) ...
위 명령의 구성 요소를 분석해보자:
-q
: 패키지를 조회합니다.-p
: 이 패키지가 제공하는 기능을 나열합니다.-R
: 이 패키지가 의존하는 기능을 나열합니다.
4. 의존성 없이 RPM 패키지 설치 방법
의존성 없이 rpm 패키지를 설치하려면 --nodeps
옵션을 사용할 수 있습니다. 이 옵션은 의존성을 확인하거나 해결하지 않고 강제로 RPM 패키지를 설치합니다.
rpm -ivh --nodeps hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
위 명령은 의존성 에러를 무시하고 rpm 패키지를 강제로 설치하지만, 만약 해당 의존성 파일이 없다면 프로그램을 설치할 때까지 전혀 작동하지 않을 것입니다.
5. 설치된 RPM 패키지 확인 방법
설치된 rpm 패키지를 확인하려면 -q
옵션을 사용할 수 있습니다. 이 옵션은 패키지의 설치된 버전에 대한 정보를 조회하고 표시합니다.
rpm -q hardinfo hardinfo-2.0.11-1.x86_64
6. RPM 파일이 설치된 위치 찾기
설치된 rpm 패키지의 모든 파일을 보려면 rpm 명령어와 함께 -ql
(query list) 옵션을 사용하세요.
rpm -ql hardinfo /usr/bin/hardinfo2 /usr/lib/.build-id /usr/lib/.build-id/3a /usr/lib/.build-id/53 /usr/lib/.build-id/7c /usr/lib/.build-id/ba /usr/lib/.build-id/e0 /usr/lib64/hardinfo2 /usr/lib64/hardinfo2/modules /usr/lib64/hardinfo2/modules/benchmark.so /usr/lib64/hardinfo2/modules/computer.so /usr/lib64/hardinfo2/modules/devices.so /usr/lib64/hardinfo2/modules/network.so ...
7. 최근 설치된 RPM 패키지 목록 확인 방법
다음 rpm 명령어와 -qa
(query all) 옵션을 사용하면 최근 설치된 rpm 패키지들을 나열할 수 있습니다.
rpm -qa --last hardinfo-2.0.11-1.x86_64 Mon 04 Mar 2024 01:32:14 PM IST pipewire-pulseaudio-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST pipewire-alsa-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST libsoup-devel-2.74.3-3.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST json-glib-devel-1.8.0-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST gtk3-devel-3.24.41-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST xdg-desktop-portal-gtk-1.15.1-1.fc39.x86_64 Mon 04 Mar 2024 01:32:01 PM IST xdg-desktop-portal-1.18.2-1.fc39.x86_64 Mon 04 Mar 2024 01:32:01 PM IST libcanberra-gtk3-0.30-32.fc39.x86_64 Mon 04 Mar 2024 01:32:01 PM IST gtk3-3.24.41-1.fc39.x86_64 Mon 04 Mar 2024 01:32:01 PM IST ...
8. 설치된 모든 RPM 패키지 목록 확인 방법
다음 명령어를 입력하여 Linux 시스템에 설치된 모든 패키지 이름을 출력하세요.
rpm -qa fonts-filesystem-2.0.5-12.fc39.noarch libreport-filesystem-2.17.11-3.fc39.noarch hunspell-filesystem-1.7.2-5.fc39.x86_64 abattis-cantarell-vf-fonts-0.301-10.fc39.noarch fedora-gpg-keys-39-1.noarch fedora-repos-39-1.noarch setup-2.14.4-1.fc39.noarch filesystem-3.18-6.fc39.x86_64 basesystem-11-18.fc39.noarch default-fonts-core-sans-4.0-9.fc39.noarch langpacks-fonts-en-4.0-9.fc39.noarch ...
9. RPM 패키지 업그레이드 방법
어떤 RPM 패키지를 업그레이드하려면 “–U
” (upgrade) 옵션을 사용합니다. 이 옵션을 사용하면 최신 버전의 패키지를 업그레이드할 뿐만 아니라, 새로운 업그레이드된 패키지가 작동하지 않을 경우 이전에 설치된 패키지를 다시 사용할 수 있도록 백업도 유지됩니다.
rpm -Uvh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
10. RPM 패키지 제거 방법
예를 들어, 패키지 이름 hardinfo를 사용하여 RPM 패키지를 제거하려면 원래 패키지 이름 hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm가 아닌 -e (erase)
옵션을 사용하여 패키지를 제거합니다.
rpm -evv hardinfo
11. 종속성 없이 RPM 패키지 제거 방법
--nodeps
(do not check dependencies) 옵션을 사용하면 rpm 패키지를 강제로 시스템에서 제거할 수 있습니다. 하지만 특정 패키지를 제거하면 다른 작업 중인 애플리케이션이 손상될 수 있다는 점을 유의하세요.
rpm -ev --nodeps hardinfo
12. 특정 파일의 RPM 패키지 찾기 방법
다음과 같이 파일 목록이 있고 이 파일들이 어떤 패키지에 속하는지 알고 싶습니다. 예를 들어, 다음 명령어에서 -qf
(파일 쿼리) 옵션을 사용하면 /usr/bin/htpasswd 파일이 httpd-tools-2.4.58-1.fc39.x86_64 패키지에 속함을 보여줍니다.
rpm -qf /usr/bin/htpasswd httpd-tools-2.4.58-1.fc39.x86_64
13. 설치된 RPM 패키지의 정보 쿼리하기
설치된 rpm 패키지의 정보를 알고 싶다고 가정해 봅시다. 다음 -qi
(정보 쿼리) 옵션을 사용하면 설치된 패키지의 사용 가능한 정보를 출력합니다.
rpm -qi hardinfo Name : hardinfo Version : 2.0.11 Release : 1 Architecture: x86_64 Install Date: Mon 04 Mar 2024 01:32:14 PM IST Group : unknown Size : 5174404 License : GPL2+ Signature : (none) Source RPM : hardinfo-2.0.11-1.src.rpm Build Date : Sat 02 Mar 2024 06:37:42 AM IST Build Host : fedora.bigbear.dk Relocations : /usr Vendor : Humanity URL : https://www.hardinfo2.org Summary : hardinfo2 built using CMake Description : Hardinfo2 is a small application that displays information about your hardware and operating system. It has online benchmarking to check your machine performance against other machines.
14. 패키지를 설치하기 전 RPM 패키지의 정보 가져오기
인터넷에서 패키지를 다운로드했고 설치하기 전 패키지의 정보를 알고 싶습니다. 예를 들어, 다음 옵션 -qip
(패키지 정보 쿼리)는 패키지 sqlbuddy의 정보를 출력합니다.
rpm -qip sqlbuddy Name : sqlbuddy Relocations: (not relocatable) Version : 1.3.3 Vendor: (none) Release : 1 Build Date: Wed 02 Nov 2011 11:01:21 PM BDT Install Date: (not installed) Build Host: rpm.bar.baz Group : Applications/Internet Source RPM: sqlbuddy-1.3.3-1.src.rpm Size : 1155804 License: MIT Signature : (none) Packager : Erik M Jacobs URL : http://www.sqlbuddy.com/ Summary : SQL Buddy â Web based MySQL administration Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.
15. 설치된 RPM 패키지의 문서 쿼리하기
설치된 패키지의 사용 가능한 문서 목록을 얻으려면 다음 명령어를 사용하십시오. -qdf
(문서 파일 쿼리) 옵션을 사용하면 vmstat 패키지와 관련된 매뉴얼 페이지가 표시됩니다.
rpm -qdf /usr/bin/vmstat /usr/share/doc/procps-ng/AUTHORS /usr/share/doc/procps-ng/FAQ /usr/share/doc/procps-ng/NEWS /usr/share/doc/procps-ng/README.md /usr/share/doc/procps-ng/bugs.md /usr/share/man/man1/free.1.gz /usr/share/man/man1/pgrep.1.gz ...
16. RPM 패키지 확인하는 방법
패키지 확인은 패키지의 설치된 파일 정보를 rpm 데이터베이스와 비교합니다. -Vp
(패키지 확인)는 패키지를 확인하는 데 사용됩니다.
rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf
17. 모든 RPM 패키지 확인하는 방법
다음 명령을 입력하여 설치된 모든 rpm 패키지를 확인합니다.
rpm -Va S.5....T. c /etc/rc.d/rc.local .......T. c /etc/dnsmasq.conf .......T. /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf S.5....T. c /etc/yum.conf S.5....T. c /etc/yum.repos.d/epel.repo
18. RPM GPG 키 가져오는 방법
RHEL/CentOS/Fedora 패키지를 확인하려면 GPG 키를 가져와야 합니다. 다음 명령을 실행하여 가져옵니다. 이 명령은 CentOS 8 GPG 키를 가져올 것입니다.
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
19. 가져온 모든 RPM GPG 키 목록 표시하는 방법
시스템에 가져온 GPG 키를 모두 출력하려면 다음 명령을 사용합니다.
rpm -qa gpg-pubkey* gpg-pubkey-0608b895-4bd22942 gpg-pubkey-7fac5991-4615767f gpg-pubkey-0f2672c8-4cd950ee gpg-pubkey-c105b9de-4e0fd3a3 gpg-pubkey-00f97f56-467e318a gpg-pubkey-6b8d79e6-3f49313d gpg-pubkey-849c449f-4cb9df30
20. 손상된 RPM 데이터베이스 다시 빌드하는 방법
가끔 rpm 데이터베이스가 손상되어 시스템의 rpm 및 다른 응용 프로그램의 모든 기능이 중단됩니다. 따라서 이 때에는 rpm 데이터베이스를 다시 빌드하고 다음 명령을 사용하여 복원해야 합니다.
cd /var/lib rm __db* rpm --rebuilddb rpmdb_verify Packages
요약하면, 제시된 rpm 명령은 RHEL 기반 Linux 배포판에서 소프트웨어 패키지를 효율적으로 관리하는 포괄적인 가이드를 제공합니다.
Source:
https://www.tecmint.com/20-practical-examples-of-rpm-commands-in-linux/