리눅스에서 RPM 명령어의 실용적인 예 20가지

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/