# RPM
- RedHat Package Manager
- 확장명은 *.rpm이며 '패키지 package'라고 부름
# 파일의 의미
- /run/media/root/CentOs-8-BaseOS-x86_64/BaseOs/Packages/에 존재하는 rmp파일 중 gzip에 대해 살펴봄
> 내 버전에서는 CentOS-8-4-2105-x86_64-dvd로 써야했음
- rpm 파일의 형식은 일반적으로 아래와 같음 (패키지에 따라 형식이 조금 다를 수 있음)
패키지 이름 - 버전 - 릴리즈 번호.CentOS버전.아키텍처.rpm
- 패키지 이름: gzip
> 패키지(프로그램)의 이름
- 버전: 1.9
> 대부분 2자리 또는 3자리 수로 구성됨 주 버전, 부 버전, 패치 버전 순서며 숫자가 높을수록 최신임
- 릴리즈 번호: 12
> 문제점을 개선할 때마다 붙여지는 번호(수정 번호)
- CentOS 버전: el8
> CentOS 8에서 배포할 경우 붙여짐
> el8은 Redhat Enterprise Linux 8을 의미
* el8은 꼭 CentOS 8에만 설치할 수 있는 것은 아니며
일반적으로 다른 버전의 CentOS나 다른 리눅스에도 설치할 수 있음
- 아키텍처: x86_64
> x86 계열의 64bit CPU를 의미함. 즉, 이 파일을 설치할 수 있는 CPU를 뜻함
i386, i486, i586, i686 | 인텔 또는 AMD 계열의 32bit CPU → 구형 CPU |
x86_64 | 인텔 또는 AMD 계열의 64bit CPU → 보편적으로 사용하는 CPU |
alpha/sparc/ia64 | - 미국 DEC사의 알파(ALPHA) 프로세서 - 썬 마이크로 시스템즈의 스팍(SPARC) 프로세서 - 인텔의 아이테니엄(Itanium) 프로세서 - 위의 세가지 모두 CPU 명령어의 개수를 줄여 하드웨어 구조를 좀 더 간단하게 만드는 RISC(Reduced Instruction Set Computer) 설계 방식 CPU의미 → 잘 사용 X |
src | 소스 파일 패키지, 설치 후에는 컴파일을 별도로 해줘야 함 |
noarch | 모든 CPU에 설치 가능함 |
# 자주 사용하는 rpm 명령어 옵션
- 설치: rpm -Uvh 패키지파일이름.rpm
U (대문자) // 기존에 패키지가 설치되지 않았다면 일반적인 설치를 진행하고,
패키지가 설치되어 있다면 업그레이드를 한다
(설치가 되어있을 경우 i 옵션은 오류가 발생하므로 U옵션이 편함)
v // 설치 과정 확인 | suda모드
h // 설치 진행 과정을 #기호로 화면에 출력
- 삭제: rpm -e 패키지이름
e
// erase(지움)의 약자
- 이미 설치된 패키지 조회 → 4가지 모드
rpm -qa 패키지이름 // 시스템에 패키지가 설치되었는지 확인
rpm -qf 패키지이름 // 이미 설치된 파일이 어느 패키지에 포함된 것인지 확인
rpm -ql 패키지이름 // 특정 패키지에 어떤 파일들이 포함되었는지 확인
rpm -qi 패키지이름 // 설치된 패키지의 상세 정보
* 설치 시 RPM보다 더 편리한 DNF를 제공하므로 RPM을 사용할 일이 많이 줄어들었지만, 이미 설치된 패키지 정보를 보는 데는 앞에 나온 4가지 질의 옵션을 자주 사용함
- 아직 설치되지 않은 rpm 파일 조회: 2가지
rpm -qlp 패키지파일이름.rpm // 패키지 파일에 어떤 파일들이 포함되었는지 확인
rpm -qip 패키지파일이름.rpm // 패키지 파일의 상세 정보
// 패키지를 설치하기 전, rpm 파일 안에 해당 기능이 포함되었는지
미리 확인하는데 유용하게 사용할 수 있음
# RPM의 단점
- 의존성: 의존성 문제해결 X A를 설치하려면 B가 있어야 함 B가 없으므로 A도 설치되지 않는 문제
→ 해결한 것이 dnf
→ rpm -qRp 패키지파일이름.rpm: 명령을 실행해 의존성 관련 정보를 미리 살펴볼 수 있지만,
어떤 패키지를 설치해야 하는지 정확히 알아내는 것은 복잡함
→ '--force': 강제로 패키지를 설치
→ '--nodeps': 의존성을 무시하고 설치하는 옵션
'Study > Linux' 카테고리의 다른 글
[Linux] 파일 압축과 묶기 (0) | 2021.10.23 |
---|---|
[Linux] DNF (0) | 2021.10.23 |
[Linux] 링크 (0) | 2021.10.22 |
[Linux] 파일과 디렉터리의 소유권과 허가권 (0) | 2021.10.22 |
[Linux] 사용자와 그룹 (0) | 2021.10.11 |