본문 바로가기
Linux

[Linux] 리눅스 RPM 이란?

by 주사휘 2024. 1. 23.
반응형

1. RPM (RedHat Package Manager 혹은 RPM Pacakage Manager)

RPM 이란 ? 레드햇 계열의 리눅스 배포판에서 사용하는 패키지(프로그램) 설치 관리 도구(혹은 패키지 그 자체)입니다.

RPM 은 Linux Standard Base (LSB)의 표준 패키지 포맷 중 하나입니다.

 

2. RPM은 언제, 왜 사용하는가?

초기의 리눅스는 tar, gzip 으로 묶인 소스파일을 가지고 직접 컴파일 하여, 수동으로 프로그램을 설치했습니다.

이 때, A라는 프로그램을 개발하는데 B라는 패키지를 사용했다면, B를 먼저 설치 후 -> A 순으로 각각 설치해야 했습니다.

여기서 A라는 프로그램에 사용된 패키지의 개수가 많다면 위의 방법으로는 설치가 어렵기 때문에 나온것이 RPM이고 RPM을 사용하는 이유입니다.

 

3. RPM을 사용하기 위한 전제 조건

Fedora, CentOS 8 (RHEL 8)
$ dnf install gcc rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools

CentOS7 (RHEL 7)
$ yum install gcc rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools

 

 

4. 소프트웨어를 RPM 패키지를 통해 배포하면 얻을 수 있는 장점

  1. 설치, 재설치, 제거, 업그레이드, 검증
    • Yum 혹은 PackageKit 과 같은 툴을 이용하여, 설치, 재설치, 제거, 업그레이드, 검증 등을 수행할 수 있습니다.
  2. 설치된 패키지를 쿼리하고, 검증
    • RPM은 설치된 패키지들의 데이터베이스와 파일들을 가지고 유지보수하므로, 사용자는 이를 통해 패키지를 쉽게 쿼리 및 검증할 수 있습니다.
  3. 메타데이터를 사용하여 패키지 설치 지침등을 설명합니다.
  4. 다른 사용자가 해당 프로그램을 찾기 쉽게 Yum repositories에 패키지를 추가할 수 있습니다.
  5. 사용자가 패키지의 진위여부를 확인할 수 있도록 GPG 서명키를 사용하여 패키지에 디지털 서명할 수 있습니다.

 

5. RPM 패키지의 구성

RPM 패키지는 2가지 type 이 존재합니다.

  • SRPM
  • binary RPM
  1. SRPM
    • 소스코드, 패치(선택)파일, SPEC 파일로 이루어져 있습니다.
      • SPEC 파일 : 소스코드(패치는 선택)를 binary RPM으로 빌드하는 방법을 설명해놓은 파일.
  2. binary RPM
    • 소스와 패치(선택)로 빌드된 바이너리

 

6. RPM 패키지의 이름 규칙

pello-0.1.1-1.fc27.noarch.rpm
{패키지이름} - {소스 버전} - {릴리즈 버전} . {빌드(OS)} . {아키텍처} . {확장자}
pello            0.1.1                1               fc27         noarch      rpm
  • 빌드(OS)
    • 해당 패키지가 빌드된 환경을 알려줍니다.
      • fc27 : Fedora Core 27
      • el7 : RHEL 7
      • ....
  • 아키텍처
    • 해당 패키지를 설치하여 사용할 수 있는 CPU를 의미합니다.
      • i386 : 32비트 x86
      • x86_64(amd64) : 64비트 x86 혹은 amd
      • aarch64 : 64비트 ARM
      • .....
      • noarch : 모든 CPU (특정 아키텍처에 종속되지 않는 패키지를 나타냅니다.)

7. RPM 주요 명령어(RPM 명령어 상세보기)

  • RPM 업그레이드 / 설치
    • # rpm -Uvh {패키지명}
      • -U 옵션 : 업그레이드를 의미합니다.(패키지가 없으면 자동으로 설치)
      • -v 옵션 : 상세 정보를 출력합니다.
      • -h 옵션 : 진행률을 #으로 표시하여 알려줍니다.
    • # rpm -ivh
      • -i 옵션 : Install을 의미합니다.
      • -v, -h는 위와 같습니다.
  • RPM 제거
    • rpm -ev {패키지명}
      • -e : 삭제를 의미합니다.
      • -v : 상세 정보를 출력합니다.
  • RPM 패키지 확인
    • rpm -qa | grep {패키지명}
      • -q : 질의를 의미합니다.
      • -a : 모든 패키지를 대상으로 질의한다는 것을 의미합니다.
반응형

'Linux' 카테고리의 다른 글

[Linux] systemd 란?  (0) 2022.12.08
[Linux] Swappiness 확인 및 설정  (0) 2021.12.23
[Linux] SWAP 메모리란? (스왑 메모리, 스왑 파티션)  (0) 2021.12.23
[Linux] Chmod, Chown 사용 방법  (0) 2021.11.23
리눅스의 역사(GNU/GPL)  (0) 2021.11.09