리눅스에서 패키지를 관리하는 데에는 yum과 dnf이 사용된다. yum은 RHEL 계열 배포판에서 사용되어 왔던 패키지 관리자이며, dnf은 yum을 개선한 다음 세대의 패키지 관리자다. dnf는 Fedora 22부터 기본 패키지 관리자로 채택되었으며, RHEL 8에서는 yum을 대체하고 있다.
yum은 C 언어로 작성되어 있으며, 기존의 yum 보다는 속도와 메모리 사용량, 의존성 해결 능력 등에서 개선되었다. 하지만 yum은 여전히 RHEL 계열에서 지원되고 있다.
반면, dnf는 Python으로 작성되어 있으며, 의존성 문제를 해결하는 libsolv와 hawkey 라이브러리를 사용하여 더욱 빠르고 효율적으로 패키지를 관리할 수 있다. 또한 API 문서도 공식적으로 제공되어 있다.
따라서, yum과 dnf은 모두 리눅스에서 패키지를 관리하는 데 사용되지만, dnf은 yum에 비해 더욱 빠르고 효율적인 패키지 관리가 가능하다. 그러나 RHEL 7까지는 yum이 지원되고 있으므로, 배포판에 따라서 어떤 패키지 관리자를 사용해야 하는지 확인해야 한다.
YUM (Yellowdog Updater Modified)
Red Hat 계열 리눅스 시스템에서 사용하는 전통적인 패키지 관리자다. YUM은 대부분의 Red Hat 계열 배포판에서 제공되며, .rpm 파일 형식으로 소프트웨어 패키지를 관리하는 RPM 패키지 관리자의 프론트엔드 역할을 한다. YUM은 APT와 마찬가지로 소프트웨어 저장소를 통해 동작하며, 저장소는 소프트웨어 패키지의 모음을 담고 있는 특별한 디렉토리다.
YUM 명령어는 Red Hat 엔터프라이즈 리눅스(RHEL)의 공식 소프트웨어 저장소뿐만 아니라 다른 서드파티 저장소에서도 RPM 소프트웨어 패키지를 얻고, 설치, 삭제, 조회 및 기타 관리 작업을 수행할 수 있는 주요 도구다. YUM을 사용하면 시스템 업데이트, 의존성 분석 및 레파지토리 메타데이터를 기반으로 한 오래된 패키지 처리 등 시스템 업데이트를 자동으로 수행할 수 있다.
또한 YUM은 설치된 시스템의 레파지토리에서 뿐만 아니라 .rpm 패키지에서도 패키지를 관리할 수 있다. YUM은 패키지를 설치, 업데이트, 삭제 및 관리하는데 사용된다. YUM 명령어를 사용하면 의존성 해결을 수행할 수 있다.
yum [옵션] [커맨드] [패키지 이름]
- -y : -y 옵션은 설치하려는 패키지와 해당 패키지의 의존성 패키지들을 확인하고, 확인 메시지 없이 자동으로 설치한다.
- history : yum의 이전 작업 내역을 조회하고, 이전에 수행한 작업을 취소할 수 있는 기능을 제공한다.
- -yumplugin : 플러그인을 사용하여 패키지를 설치, 업데이트 또는 제거하는 데 사용된다.
- -exclude : 패키지를 제외하고 업데이트를 수행한다.
- -downloadonly : 패키지를 다운로드만 하고 설치하지 않는다.
* 다운로드란 인터넷에서 파일을 다른 컴퓨터로 전송받아 자신의 컴퓨터에 저장하는 것이지만 설치는 다운로드한 파일을 실행하여 해당 파일을 사용할 수 있는 상태로 만드는 것을 말한다.
DNF(Dandified YUM)
RHEL, Fedora, CentOS, AlmaLinux, Rocky Linux, Oracle Linux와 같은 RPM 기반의 Linux 배포판에서 사용되는 패키지 매니저다. DNF는 YUM 패키지 매니저의 업그레이드 버전으로, RPM 및 libsolv를 사용하여 패키지 관리를 한다. DNF는 패키지 설치, 업데이트, 삭제와 같은 패키지 관리 작업 뿐만 아니라 모듈, 애플리케이션 스트림 및 프로파일과 같은 기능도 제공한다.
DNF는 기본적으로 플러그인을 제공하며, 플러그인은 dnf의 작업을 확장하거나 향상시키기 위해 사용된다. 플러그인 설정 파일에는 항상 [main] 섹션이 있으며, enabled = 옵션을 사용하여 플러그인이 dnf 명령어를 실행할 때 활성화되는지 여부를 제어할 수 있다.
dnf [옵션] [커맨드] [패키지 이름]
패키지 동기화
- dnf distro-sync : 설치된 모든 패키지를 저장소에서 사용 가능한 최신 안정 버전으로 동기화하는 옵션을 제공한다.
패키지 설치
- dnf -y install 패키지이름 : 의존성 있는 다른 패키지까지 모두 설치할 수 있다.
- dnf install rpm파일이름 : rpm 파일을 설치할 수 있다.
패키지 업데이트
- dnf update 패키지이름 : 업데이트 가능한 패키지를 업데이트 할 수 있다.
패키지 삭제
- dnf remove 패키지이름 : 패키지를 삭제할 수 있다.
패키지 재설치
- dnf reinstall 패키지이름 : 이미 설치된 패키지를 다시 설치할 수 있다.
패키지 검색
- dnf search 검색어 : 패키지를 검색할 수 있다.
저장소 확인
- dnf repolist : 시스템에 설정된 저장소 목록을 확인할 수 있다.
저장소 추가 및 삭제
- dnf config-manager --add-repo 저장소주소 : 저장소를 추가할 수 있다.
- dnf config-manager --remove 저장소이름 : 저장소를 삭제할 수 있다.
이 외의 다양한 명령어는 --help로 찾아보라.
'Linux > Linux 이론' 카테고리의 다른 글
[Linux 이론] File system [2] (Linux 용) (0) | 2023.03.12 |
---|---|
[Linux 이론] 서버와 클라이언트(+ DHCP) (2) | 2023.03.11 |
[Linux 이론] 사용자와 그룹 정보 분석하기 (0) | 2023.03.08 |
[Linux 이론] 디렉토리, 파일의 속성 분석하기 (0) | 2023.03.07 |
[Linux 이론] 초기 /(root) 디렉토리 구성 (0) | 2023.03.07 |