본문 바로가기
Linux

Package 관리-1 (yum, RPM)

by Nirah 2022. 11. 2.

package 관리에 관한 내용을 시작합니다.

 

목차

 

    package 관리-1

1. yum 설치

2. rpm 설치

 

    package  관리-2

3. source 설치 

4. Bash shell 스크립트 작성

 

    package  관리-3

5. local Repository

 

 

 

 

 

package

 

CentOS와 같은 Redhat 계열은 package 관리에 rpm (Redhat package Manager)을 사용한다.
(Debian은 deb 를 쓴다 ( Ubuntu, Android 등))

 


<<설치 또는 제거 방법>>

1. yum(Yellodog Update Modified)
(centOS 8,9버전에선 dnf라는 명령어로 사용)
인터넷상의 저장소(repository)에서 패키지를 다운로드 해서 설치하는 방식
단점 : 최신버젼보다는 안정화된 버젼을 사용한다.
인터넷 연결이 안되면 사용 불가하다.

장점 : 의존성 문제까지 해결한다. 
의존성 : 패키지 설치를 위한 다른 패키지 또는 라이브러리설치
update가 편리하다.

2. rpm (Redhat Package Manager)
Binary 들은 하나로의 파일로 만들어서  제작하는 방식이다.
sourece설치 방식에 비해서는 설치가 편리하지만 의존성 문제에서 자유롭지 못하다.

3. source (Binary)
가장 어렵고 불편한 설치 방식이다.
커스터마이징이 가능하다.
장점 : 설치위치나 관련된 모듈을 사용자가 임의대로 지정해서 설치가 가능하다.
최신 버젼 설치가 가능하다.
단점 : 설치 자체가 힘들다. 의존성 문제등이 어마어마하다.
update가 어렵다.
update 시 설정 파일과 데이터 파일을 백업한 후에 update
다시 설정파일과 데이터파일을 해당 위치로 저장한다.

 

 

 

 

<< 1. yum  (Yellodog Update Modified) >>

  • 인터넷상의 저장소에서 파일 다운로드 후 설치하는 방식이다.
  • 장점 : rpm 등의 의존성 문제까지 해결해 준다. 작업에 대한 기록과 실행취소가 있다.
  • 단점 : 인터넷의 이용해야 하기 때문에 인터넷 및 DNS가 정상동작해야 한다.

설정 파일 위치

# /etc/yum.repos.d
 

명령어

# install [패키지명1] [패키지명2]...
# remove [패키지명1] [패키지명2]...   (아래 실습)

# check-update
# update [패키지명]
# list
# groupinstall
# provides 파일명
# [설치한 package의 명령어] --version : 해당 설치가 잘됐나 작동을 확인하는 용도

# ls /var/cache/yum/x86_64/7/
설치시 보이는 base, extras, pdate 디렉토리가 위치함 (인터넷 저장소 자체의 디렉토리 분류를 그대로 따온것)
여기로 .rpm 설치파일이 다운받아지고 원래는 설치후 삭제된다.
Is this ok [y/d/N] : d 선택시 설치파일 남겨두기 (-y를 옵션으로 쓰면 안된다)

 

옵션
-y : 모두 자동 yes

 

 

 

 

RPM보다 Yum을 쓰는 이유는 작업기록이 있기 때문이다.

설치 히스토리 보기
# yum history list

특정 패키지 설치/삭제 작업 내역 자세히 보기(같이 설치된 파일 목록들 확인 가능)
# yum history info [history list의 패키지 ID번호]

해당 작업 취소 (삭제작업의 경우 다시 설치해줌)
# yum history undo [list의 패키지 ID번호]

리눅스에 설치된 패키지 목록 확인 (많으니까 grep과 함께 쓰자)
# yum list installed

 

 

 

=========================================================================

 

Remove 실습

 

지울땐 처음 설치할때의 패키지 목록이 일괄로 전부 지워지지 않기때문에

처음 설치 화면을 캡쳐나 목록화 해 놓거나 yum list 또는 yum history를 보고

순서대로 하나 하나 remove 해주어야 한다.
하나를 지웠더니 한꺼번에 여러개 지워지는 것은 파일끼리 의존성이 있기 때문이다.

 

 

# yum install createrepo 를 실행하여 설치한 화면이다.

createrepo 를 설치하려고 했을 뿐인데 밑에 deltarpm, libxml2-python, python-deltarpm 세개나 딸려 설치된다.

이것이 위에서 언급한 '의존성'이다.

yum은 의존성이 있는 파일들을 일일이 찾아서 설치해 줄 필요 없이 아래와 같이 자동으로 설치해준다.

 

# yum remove createrepo

 

createrepo를 지우려고 시도하면 딱 createrepo만 지워진다.

같이 설치된 의존성 파일들은 따로 찾아 지워줘야 한다.

 

의존성 파일들을 지우기 위해 history를 조회하자.

10번에 install이 있고, Altered가 4개인것 보니 이건가보다.

 

10번의 내용을 자세히 조회해보니 아까 설치한 createrepo 파일들이 맞다.

 

undo 해서 되돌리면 remove가 될 것이다.

아래는 단일로 지워봤던 13. deltarpm 파일을 undo 한 화면이다.

다시 설치가 실행된다.

 

 

 

 

 

<< 2. RPM  (Redhat Package Manager) >>

패키지 다운로드  (일단 실습을 위해 yum을 이용하여 파일만 다운로드)

 

# yum install createrepo

 

설치를 묻는 화면에서 (y/d/N) d를 클릭
다운로드한 파일의 위치는 

# /var/cache/yum/x86_64/7/base/packages/
# /var/cache/yum/x86_64/7/update/packages/
rpm 명령어로 설치n


옵션

# -qlp

# rpm -ivh [패키지명]  : 패키지 설치
# rpm -Uvh [패키지명]  :  패키지 설치 및 update
# rpm -qa [패키지명]  :  설치된 패키지 확인 가능
# rpm -qi [패키지명]  :  패키지의 자세한 정보
# rpm -ql [패키지명]  :  패키지와 광련된 파일 및 디렉토리 정보
# rpm -qf [파일명]  :  해당 파일과 관련된 패키지명 출력
# rpm -e [패키지명]  :  해당 패키지 삭제

 

 

 

 

rpm설치로 httpd를 설치를 한다.

아래와 같이 httpd를 설치하려면 의존성이 있는 apr 부터 설치해야 한다.

 

설치된 패키지 확인.

 

 

 

'Linux' 카테고리의 다른 글

Package 관리-3 (local Repository)  (0) 2022.11.08
Package 관리-2 (Source, 스크립트, Ncloud)  (0) 2022.11.07
storage 관리-3 (Quota)  (0) 2022.11.01
Storage 관리-2 (LVM)  (0) 2022.11.01
Storage 관리-1 (partition - format - mount)  (0) 2022.10.31