rpm

2023. 10. 7. 06:41리눅스/CentOS

rpm

 - redhat package manager; 패키지를 이용한 프로그램/서비스 관리

  * 패키지 : 프로그램을 나눠놓은 조각

 - Linux는 kernel부터 시작하여 모든 구성이 패키지로 이루어져 있고
   패키지는 다른 패키지와 의존 관계에 놓여있는 경우가 많다
   > 패키지 설치/삭제 과정에서 의존성 관련 오류가 굉장히 많이 나온다

 - rpm은 redhat에서 처음 만들어서 도입했고, redhat 기반의 Linux에서는 rpm 명령어 사용
   > debian 기반의 Linux에서는 rpm이 아닌 dpkg 명령어 사용

 - 형식
설치 : rpm   -i[설치]v[출력]h[해시;진행도]   패키지명-버전.아키텍처.rpm

확인 : rpm   -qa   |   grep   패키지명

삭제 : rpm   -e   패키지명[-버전.아키텍처]

 - 패키지 이름 구조

vim-filesystem-7.4.629-7.el7.x86_64
vim-filesystem -7.4.629-7.el7 .x86_64
패키지명 버전 아키텍처

 

 1. 패키지명
패키지의 이름은 한 단어이거나 '-' 기호를 이용하여 여러 단어의 조합으로 구성되어 있다
(이때 숫자만 단독으로 나오는 경우가 없기 때문에 버전과 구별이 가능)

한 단어이면 해당 패키지로 설치되는 프로그램 or 서비스이 이름을 나타낸다

여러 단어라면 첫 단어가 설치되는 프로그램 or 서비스이 이름이고
뒤에 이어지는 단어들이 세부 역할을 의미

 

 2. 버전
여러가지 세부 버전으로 구성

7 : major
4 : minor
629 : patch
7 : release
el7 : OS

* OS 버전 표현 방식
   el7 : CentOS 7버전 전체
   el7_9 : CentOS 7.9버전
   centos : CentOS 모든 버전
   <생략> : 모든 운영체제

 

 3. 아키텍처
i386, i586, i686 : 32bit CPU
x86_64 : 64bit CPU
noarch : 32bit CPU와 64bit CPU 혼용

 

 - 의존성 오류
  1. 확인 방법
A is needed by B : B에게 A가 필요하다

   1) 설치할 때
B를 설치하기 위해 A를 먼저 설치해야 한다

   2) 삭제할 때
B에게 A가 필요하기 때문에 A를 지울 수 없다

  2. 해결 방법
   1) 의존성 오류 메세지를 읽고 해당 내용 해결
설치할 때는 A를 먼저 설치하고 B를 설치
삭제할 때는 B를 먼저 삭제하고 A를 삭제

   2) 의존성 오류를 무시하는 보조 옵션 --nodeps 사용
설치할 때는 A를 찾을 수 없을 때, 삭제할 때는 B를 삭제할 수 없을 때 의존성 오류를 무시한다

  3. 의존성 오류 메세지에 패키지명이 아닌 다른 내용이 출력되면?
   1) 파일의 절대 경로
패키지에 해당 파일이 포함되어 있는 경우(일반적으로 삭제할 때 출력)
파일명을 패키지 이름으로 바꿔서 읽으면 된다

   2) lib~~~.so.숫자(~~~)
~~~ 부분이 패키지를 의미(설치/삭제할 때 전부 출력)
해당 의존성 오류를 검색하여 패키지명 확인

   3) pkgconfig(~~~)
~~~ 부분이 패키지를 의미(일반적으로 설치할 때 출력)
해당 의존성 오류를 검색하여 패키지명 확인

 - 패키지 파일 구하는 방법
  1. 설치 CD에 있는 패키지 파일 사용

  2. 인터넷에서 패키지 파일을 다운로드 받아 사용

 

- 패키지 관리 시 주의 사항
 1. 의존성 오류는 가급적이면 무시하지 않느다
> 의존성 오류를 전부 무시하게 되면 작게는 프로그램부터 크게는 운영체제에 문제가 생길 수 있다

 2. 패키지들은 버전과 아키텍처를 맞추어 주어야 정상적인 동작이 가능하다
+ 의존성 오류에 버전 정보가 나오면 버전까지 체크해서 의존성 오류 해결이 필요하다
  > 패키지명 = 버전 : 해당 버전의 패키지
    패키지명 > 버전 : 해당 버전보다 높은 버전의 패키지

 3. 모든 작업은 눈에 보이는 순서대로 진행(누락 방지)
    단, main 패키지가 존재하는 경우에는 main 패키지를 최우선으로 진행
* 세부 역할이 없으면 main 패키지

 4. 패키지 설치 시 * 기호를 사용하여 모든 패키지를 한 번에 설치 x
> 의존성 오류 발생 시 패키지 의존 관계 파악이 힘들어진다

 

 

실습

패키지 확인 grep 옵션 활용

 

 

삭제[의존성 오류]

 

 

지우는 순서 조심

 

 

나머지도 의존성 주의하며 삭제

 

 

패키지 다운로드 사이트

 

 

RPMs 클릭

 

 

os 클릭

 

 

Packages 클릭

 

 

main 패키지 검색

 

 

다운로드

 

 

패키지 설치 여러 파일 쉽게 업로드

 

 

같은 글자 외 첫 다른 글자 tab 키 활용

 

 

설치 완료

 

 

mariadb를 삭제해보자

 

 

구글링

 

 

이 사이트에서 직접 검색 가능

 

 

문제

<실습>
rpm 명령어를 이용하여 mariadb로 시작하는 패키지 전체 설치

* 아키텍처 확인( CentOS 7 버전은 64bit 운영체제)

* 의존성 무시( --nodeps) 사용 x

* 필요한 패키지는 사이트 내에서 전부 확인 가능
  (이름이 비슷한 것을 찾아서 설치해보거나 구글링을 통해 패키지명 확인)

* 업로드 한 패키지 파일 삭제하지 마세요 - 설치 후 확인할 때 사용합니다

* 다운그레이드 : rpm -Uvh --oldpackage 패키지명-버전.아키텍처.rpm
  (다운그레이드가 필요한 실습은 아니기 때문에 참고만 하세요)

확인 사항 : 패키지 설치 완료된 결과 + 업로드 한 패키지 목록

'리눅스 > CentOS' 카테고리의 다른 글

하드디스크  (0) 2023.10.07
yum  (0) 2023.10.07
압축, tar  (0) 2023.10.07
umask  (0) 2023.10.07
특수 권한  (0) 2023.10.07