rpm(redhat package manager)
- binary 파일의 모음
- source 설치에 비해서는 쉬움
- 패키지를 제작할 수 있음
- 의존성 문제에서 자유롭지 못함
- 형식
설치 : rpm -ivh 패키지명-버전.아키텍처.rpm
업데이트 : rpm -Uvh 패키지명-버전.아키텍처.rpm (설치가 안되어있는 패키지일 경우 ivh랑 똑같이 동작)
확인 : rpm -qa | grep 패키지명
삭제 : rpm -e 패키지명
yum(yellow dog update manager)
- 인터넷상의 repository(저장소)에서 패키지(App)을 다운로드 해서 설치
- 의존성 문제까지 해결해 줌
- 인터넷과 DNS가 정상동작 해야함
- 최신 버전이 아니라 안정된 버젼임, CentOS에서 개발한 community
- Customizing 불가능(설치 위치, 필요한 module 결정 불가)
- 설정파일 위치
/etc/yum.repos.d
- 다운로드한 파일이 저장되는 위치
/var/cache/yum/x86_64/7/해당디렉토리/packages/
- 형식
yum [옵션] { install | update | remove } 패키지명
install : 설치
update : 업데이트
remove : 삭제
* 옵션
-y : y/N 물어볼 때 자동으로 y로 진행
패키지 설치시 의존성 문제를 yum과 rpm 둘다 사용해서 살펴보자


yum으로 createrepo (repository를 구축할 수 있게 해주는 패키지)를 설치할 때 잘 살펴보면
createrepo 패키지를 설치하는데 의존성 문제 때문에 설치되고 업데이트 되는 패키지 파일의 존재를 확인할 수 있다
-y 옵션을 사용하지 않았을 경우 이렇게 설치할 예정인데 진행하냐고 한번 물어봐준다
이때 y는 yes d는 download(패키지 파일을 다운만 받고 설치까지 진행하진 않는다) N는 No 이다
원활한 rpm 실습을 위해 d로 파일을 다운만 받아준다

d로 다운 받은 파일들이 어디로 가는지 알기 위해서는 같은 화면 오른쪽에 Repository를 확인하면 된다
다운 받은 파일은 /var/cache/yum/x86_64/7/ 아래에 해당 Repository 디렉토리 밑 packages 디렉토리 안에 존재한다
이번에는 rpm으로 똑같이 createrepo 패키지를 설치를 시도 해보자

편의성을 위해 /test 디렉토리 생성 후 다운 받은 패키지 파일을 이동시켜 놓았다

알아서 다 해결해주던 yum과 다르게 createrepo 설치를 위해서 이런 패키지 파일들이 먼저 설치 되어있어야 한다면서
의존성을 만족 시키지 못했다고 설치를 해주지 않는다

rpm으로 패키지를 설치할 때는 작업 도중 헷갈림을 최소화 하기 위해 언제나 순서대로 작업하는 것이 좋다
작업 도중 libxml2-python을 설치하기 위해서는 2.9.1-6.el7_9.6 버전의 libxml2 패키지가
설치되어 있어야 한다는 의존성 오류 메시지가 또 뜬다
* 패키지 이름 구조
vim-filesystem-7.4.629-7.el7.x86_64
<---------------->|<-------------->|<------->
패키지명 버전 아키텍처

libxml2 패키지를 설치해주려고 했더니 하위 버전의 libxml2 패키지 파일과 충돌한다는 메시지가 출력됐다
이미 libxml2 패키지가 설치되어있고 상위 버전으로 업데이트가 필요한 것임을 알 수 있다
yum이었다면 설치가 필요한 패키지가 아니라 업데이트가 필요한 패키지라고 친절하게 알려줬겠지만
rpm은 그렇지 않기 때문에 처음부터 Uvh 옵션을 사용하도록 하자, U는 업데이트 옵션이지만
해당 패키지가 미설치 패키지 시 install, i 옵션과 동일하게 동작하기 때문이다

의존성 문제로 설치가 필요한 패키지를 다 설치한 후에야 createrepo 패키지가 정상적으로 설치되는 것을 확인할 수 있다
만약 yum으로 필요한 패키지 파일들을 미리 다운 받아놓지 않았다면
패키지 파일들이 들어있는 CD가 필요하거나 인터넷에서 파일을 일일이 찾아야 했을 것이다
또한 어느 패키지를 설치하냐에 따라 필요한 패키지가 꼬리에 꼬리를 물어 엄청나게 많은 의존성 문제를 발생시킬 수 있다

의존성 문제는 패키지를 삭제 할 때에도 적용된다
deltarpm을 먼저 삭제하려고 하자 설치 되어있는 createrepo와 python-deltarpm에 필요한 파일이라고 삭제가 불가능하다
삭제를 위해서는 설치 했던 과정의 역순으로 의존성 문제를 해결해주면서 차례차례 삭제해야 한다

그와 다르게 yum은 rpm으로 했던 것처럼 deltarpm을 먼저 삭제하려고 하면 의존성 문제까지 모두 해결해 주기 때문에
사용자가 굉장히 편리하게 패키지를 관리 하는 것이 가능하다
'Linux' 카테고리의 다른 글
Source 파일로 패키지 설치 (0) | 2022.09.21 |
---|---|
Local Repository (0) | 2022.09.21 |
Quota (0) | 2022.09.20 |
NTFS 디스크 마운트 (0) | 2022.09.20 |
LVM (0) | 2022.09.19 |