반응형
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 패키지를 통해 배포하면 얻을 수 있는 장점
- 설치, 재설치, 제거, 업그레이드, 검증
- Yum 혹은 PackageKit 과 같은 툴을 이용하여, 설치, 재설치, 제거, 업그레이드, 검증 등을 수행할 수 있습니다.
- 설치된 패키지를 쿼리하고, 검증
- RPM은 설치된 패키지들의 데이터베이스와 파일들을 가지고 유지보수하므로, 사용자는 이를 통해 패키지를 쉽게 쿼리 및 검증할 수 있습니다.
- 메타데이터를 사용하여 패키지 설치 지침등을 설명합니다.
- 다른 사용자가 해당 프로그램을 찾기 쉽게 Yum repositories에 패키지를 추가할 수 있습니다.
- 사용자가 패키지의 진위여부를 확인할 수 있도록 GPG 서명키를 사용하여 패키지에 디지털 서명할 수 있습니다.
5. RPM 패키지의 구성
RPM 패키지는 2가지 type 이 존재합니다.
- SRPM
- binary RPM
- SRPM
- 소스코드, 패치(선택)파일, SPEC 파일로 이루어져 있습니다.
- SPEC 파일 : 소스코드(패치는 선택)를 binary RPM으로 빌드하는 방법을 설명해놓은 파일.
- 소스코드, 패치(선택)파일, SPEC 파일로 이루어져 있습니다.
- 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 (특정 아키텍처에 종속되지 않는 패키지를 나타냅니다.)
- 해당 패키지를 설치하여 사용할 수 있는 CPU를 의미합니다.
7. RPM 주요 명령어(RPM 명령어 상세보기)
- RPM 업그레이드 / 설치
- # rpm -Uvh {패키지명}
- -U 옵션 : 업그레이드를 의미합니다.(패키지가 없으면 자동으로 설치)
- -v 옵션 : 상세 정보를 출력합니다.
- -h 옵션 : 진행률을 #으로 표시하여 알려줍니다.
- # rpm -ivh
- -i 옵션 : Install을 의미합니다.
- -v, -h는 위와 같습니다.
- # rpm -Uvh {패키지명}
- RPM 제거
- rpm -ev {패키지명}
- -e : 삭제를 의미합니다.
- -v : 상세 정보를 출력합니다.
- rpm -ev {패키지명}
- RPM 패키지 확인
- rpm -qa | grep {패키지명}
- -q : 질의를 의미합니다.
- -a : 모든 패키지를 대상으로 질의한다는 것을 의미합니다.
- rpm -qa | grep {패키지명}
반응형
'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 |