dnf 는 Dandified YUM의 약자로 기존 Red Hat 계열의 패키지 관리자인 yum의 단점인 "느린 속도", "과다한 메모리 사용", "의존성 결정이 느림" 과 같은 단점을 개선한 새로운 패키지 관리자입니다.

RHEL/CentOS 8 에 정식 도입되었으며 기존 사용자들을 위해 dnf 를 백엔드로 사용하는 yum 유틸리티가 제공되므로 사용자들은 yum 을 그대로 사용하거나 또는 dnf 명령어를 기존 yum 과 같은 용법으로 사용하면 됩니다.


dnf 는 기본적으로 BaseOS 이라는 저장소가 등록되는데 여기서는 OS 를 구성하기 위한 필수적인 패키지만 제공되며 나머지 패키지들은 AppStream 이라고 부르는 개별 저장소들로 나뉘어져 있습니다.


AppStream 은 module 과 패키지를 제공하는데 module 은 해당 패키지와 패키지의 의존성 전체 묶음을 의미합니다. 즉 PHP 모듈은 PHP 패키지와 PHP 패키지가 의존하는 다른 패키지(예: PHP MySQL 드라이버, GD 드라이버등)를 의미합니다.


하나의 모듈은 여러 개의 Stream 을 가질수 있으며 예로 NodeJS 는 10, 12, 14 Stream 을 가질 수 있습니다.

이로 인해 dnf 는 기존과는 달리 하나의 패키지의 여러 버전을 설치할 수 있습니다.

즉 사용자는 rvm(Ruby Version Manager) 이나 nvm(Node Version Manager) 같은 언어별 패키지 매니저가 없어도 Ruby 2.6, 2.7, 3.0 을 동시에 설치할 수 있으며 PHP 나 Python, NodeJS 도 여러 버전을 동시에 설치할 수 있습니다.


자세한 dnf 모듈 사용법은 CentOS 8 하나의 패키지 여러 버전을 관리하는 dnf module(모듈) 명령어 사용법 를 참고하면 됩니다.

같이 보기

Ref