[Centos 7] RPM (Redhat Package Manager)

2022. 11. 23. 17:13리눅스(Linux)

What is RPM?

   - RedHat Package Manager 
   - 초창기 리눅스에는 없었던 패키지 개념을 도입하여 설치와 삭제, 업그레이드 등을 편리 하도록 만들어, 리눅스를 성장 시키는데 큰 도움을 제공

 

$ RPM 패키지 파일의 구성

# Vim-enhanced-7.0.109-3.i386.rpm
 
Vim-enhanced : 패키지명
7.0.109-3 : 버전
   - 7 : major 버전, 프로그램 자체가 완전히 변경 되었을 경우 변경 (주버전, 시즌)
   - 0 : minor 버전, 기능의 추가가 있을 경우에 올라간다 (사소한 업데이트)
   - 109 : patch 버전, 기존 기능에서 버그가 수정되는 경우 올라감
   - 3 : release 버전, 배포하는 측에서 몇 번째로 만든 배포판 인지를 나타낸다,
   0~2는 테스트, 짝수 버전은 테스트라 공개 잘 안함               
i386 : 아키텍쳐

Architecture
Mode
Mode
설치 및 삭제모드의 추가옵션

 

$ 명령어 예제

# rpm -Uvh vim-enhanced-7.0.109-3.i386.rpm 
   - Upgrade, verbose, hash

# rpm -Uvh vim-enhanced-7.0.109-3.i386.rpm --nodeps 
   - (--nodeps) 옵션 사용시 의존성 무시하고 설치

# rpm -e vim-enhanced-7.0.109-3 
   - 삭제
   
# rpm -Uvh vim-enhanced-6.0.109-3.i386.rpm --oldpacake
   - 신버전 → 구버전 변경

질의 옵션(-q)

sudo-1.8.23-9.el7.x86_64 → sudo 관련 명령어 패키지 , 절대 지우면 안됨

 

$ rpm 공식

*강사님이 만드신 공식이라 주관적인 견해란 점 참고 바람

  1.의존성 오류를 무시하지 말라 (Failed dependencies)

 2.의존성 오류를 재기한 패키지를 먼저 작업한다.

 3.만들었던 패키지를 지울 땐 역순으로 지운다.

 4.lib ~ .so 로 돼 있는 건 패키지가 아니므로 무시해도 된다.

5.모든 패키지는 대표 패키지부터 작업한다.

패키지명 뒤에 버전이 바로오는 것

6.나머지 화면에 보이는 순서대로 작업한다.

7.모든 패키지는 버전을 일치시켜야한다.

8.가급적 의존성 무시를 사용하지말자.(--nodeps)

 

$ 의존성 오류일 때 설치 방법

http://mirror.centos.org/centos/7/os/x86_64/Packages/

wget 명령어로 링크 걸어 리눅스로 파일 다운 가능

다운 받은 패키지를 rpm -ivh 명령어로 리눅스에 설치

 

686 → 32비트 형식, 설치 x

 

   - 오른쪽에 있는 패키지를 설치하란 뜻이 아니라 버전이 안맞거나 지워야 한다는 의미

   - 해당 패키지를 업데이트 해주거나 --nodeps 사용

   - 서로 재기하는 패키지 의존성은 동시에 업데이트해줘서 문제 해결

 

실무에서 yum을 사용했을 경우 클라이언트 요구와는 안맞는 최신버전이 다운받게 될 수 있다.

세부적으로 버전을 맞춰줘야하기 때문에 의존성 오류를 배워야 함