본문 바로가기

02. Linux & AWS

05. 소프트웨어 관리

728x90

RPM 패키지

RPM 패키지의 특징과 구조

RPM

: 리눅스 회사인 Redhat에서 만든 패키지 관리 도구로 파일을 쉽게 설치할 수 있음

  • RPM의 특징
    • 바이너리 파일로 구성되어 있어 컴파일이 필요 없음
    • 패키지의 파일들이 관련 디렉터리로 바로 설치
    • 한 번에 설치된 패키지의 파일을 일괄적으로 삭제할 수 있음
    • 기존에 설치된 패키지를 삭제하지 않고 바로 업그레이드할 수 있음
    • 단점: 패키지 의존성에 따라 관련 패키지가 먼저 설치되어 있지 않으면 설치할 수 없음
    • RPM의 단점을 해결하기 위해 dnf 등장

YUM (Yellowdog Updater Modified)

  • Red Hat 계열 리눅스 시스템에서 사용하는 전통적인 패키지 관리자
  • YUM은 대부분의 Red Hat 계열 배포판에서 제공
  • .rpm 파일 형식으로 소프트웨어 패키지를 관리하는 RPM 패키지 관리자의 프론트엔드 역할
  • 소프트웨어 저장소를 통해 동작하며, 저장소는 소프트웨어 패키지의 모음을 담고 있는 특별한 디렉터리
  • YUM을 사용하면 시스템 업데이트, 의존성 분석 및 레파지토리 메타데이터를 기반으로 한 오래된 패키지 처리 등 시스템 업데이트를 자동으로 수행할 수 있다.
  • YUMM은 패키지를 설치, 업데이트, 삭제 및 관리하는데 사용된다.
  • 형식: yum [옵션] [커맨드] [패키지 이름]
    • -y : -y 옵션은 설치하려는 패키지와 해당 패키지의 의존성 패키지들을 확인하고, 확인 메시지 없이 자동으로 설치
    • history : yum의 이전 작업 내역을 조회하고, 이전에 수행한 작업을 취소할 수 있는 기능을 제공
    • -yumplugin : 플러그인을 사용하여 패키지를 설치, 업데이트 또는 제거하는데 사용
    • -exclude : 패키지를 제외하고 업데이트
    • -downloadonly : 패키지를 다운로드만 하고 설치하지 않음

dnf의 특징

  • dnf : ‘dandified yum’의 약자
    • : RPM 기반의 리눅스 패키지 관리자로 기존의 패키지 관리자인 yum을 대체
    $ man yum
    $ ls -l /usr/bin/yum
    lrwxrwxrwx. 1 root root 5 Apr 14  2024 /usr/bin/yum -> dnf-3
    
  • dnf는 페도라 22부터 정식으로 도입되었으며, CentOS는 버전 8에서 dnf를 도입함
  • dnf의 사용법은 yum과 거의 비슷하여 쉽게 적응할 수 있음
  • 패키지 의존성 문제를 자동으로 해결했다는 점이 최대 장점
  • dnf의 두드러지는 특징
    • 패키지의 의존성을 자동으로 해결하여 설치•업그레이드•삭제할 수 있음
    • 설치 가능한 패키지에 대한 정보가 담긴 저장소 repository를 가지고 있음
    • 저장소의 정보에 따라 패키지를 관리
  • dnf
    • 기능: RPM 기반의 패키지를 관리
    • 형식: $ dnf [옵션] [명령] [패키지명]
    • 옵션
      • -h : 도움말을 출력
      • -y : 설치 과정의 모든 질문에 yes로 대답
      • -v : 자세한 메시지를 출력
    • 명령
      • install : 패키지를 설치
      • upgrade : 패키지를 업데이트
      • check-update : 패키지를 확인
      • search : 패키지를 검색
      • remove : 패키지를 삭제
      • list : 패키지의 목록을 확인
      • info : 패키지의 정보를 확인
    • 사용 예
      • $ dnf list all
      • $ dnf install xterm

패키지 목록 확인

dnf list 명령의 출력 형식

| 패키지명.아키텍처 | 버전-릴리즈 | 저장소 또는 @설치한 저장소 |

$ dnf list | more
Installed Packages
Installed Packages
NetworkManager.x86_64        1:1.46.0-19.el9_4
                    @baseos
NetworkManager-libnm.x86_64  1:1.46.0-19.el9_4
                    @baseos
NetworkManager-team.x86_64   1:1.46.0-19.el9_4
                    @baseos
NetworkManager-tui.x86_64    1:1.46.0-19.el9_4
                    @baseos
acl.x86_64                   2.3.1-4.el9
                    @minimal
alternatives.x86_64          1.24-1.el9
                    @minimal

dnf list 명령의 옵션

형식 기능
dnf list --all 이미 설치되었거나 설치 가능한 모든 패키지 목록을 출력
dnf list --available dnf 저장소에서 설치 가능한 모든 패키지 목록을 출력
dnf list --upgrades dnf 저장소에서 업그레이드가 가능한 패키지 목록을 출력
df list --installed 이미 설치된 패키지 목록을 출력
dnf list --installed <패키지명> 지정한 패키지가 설치되어 있는지 확인
  • dnf list --available
    • dnf 저장소에서 설치 가능한 패키지들의 목록을 보려면 available 옵션을 지정
    • AppStream과 BaseOS는 저장소를 의미
    • BaseOS 저장소는 운영체제의 핵심 기능과 관련된 패키지를 가짐
    • AppStream 저장소는 부가적인 패키지와 모듈을 가지고 있음
  • dnf list --upgrades
    • dnf 저장소의 패키지 중에서 업그레이드가 가능한 패키지의 목록을 보려면 upgrades 옵션을 지정
    • dnf check-update 명령과 같은 기능을 수행
  • dnf list --installed
    • 현재 시스템에 설치되어 있는 패키지의 목록을 출력할 때는 --installed 옵션을 지정

패키지 설치

  • dnf로 패키지를 설치할 때는 ‘dnf install 패키지명’의 형식을 사용
  • 패키지를 설치할 때 의존성이 있는 패키지는 자동으로 함께 설치
    • EXAMPLE. 패키지의 존재 여부를 확인하고 함께 설치해야 할 패키지 목록을 보여주며 내려 받을 파일의 크기와 실제로 설치되었을 때 필요한 디스크 용량을 알려주고 계속 진행할 것인지 물어봄
  • N이라고 대답하면 설치가 종료되고, y라고 대답하면 설치가 진행

패키지 삭제

  • 특정 패키지의 정보를 dnf로 확인하려면 ‘dnf info 패키지명’을 입력
  • 패키지 이름, 버전, 릴리즈, 아키텍처, 패키지 파일 크기, 저장소(리포지터리, 레포에서), 요약, URL, 라이선스, 설명 등의 정보를 출력
  • dnf로 패키지를 삭제하려면 ‘dnf remove 패키지명’을 사용
  • 패키지를 삭제할 때도 의존성을 확인한 후 해당 패키지와 더 이상 사용하지 않는 의존성 패키지도 삭제
728x90

'02. Linux & AWS' 카테고리의 다른 글

07. 데이터베이스 서버  (0) 2024.10.27
06. FTP  (0) 2024.10.27
04. 프로세스 관리  (1) 2024.10.27
03. 링크 & 셸  (0) 2024.10.20
02. AWS EC2 설정, Linux 기본 명령어, 사용자&그룹  (0) 2024.10.20