DNF Package Manager (DNF 패키지 관리자)

1️⃣ DNF 란?

DNF(Dandified YUM)는 Fedora, RHEL(Red Hat Enterprise Linux), CentOS, Rocky Linux 등의 RPM 기반 리눅스 배포판에서 사용하는 패키지 관리자입니다.

기존의 YUM(Yellowdog Updater Modified)을 대체하기 위해 개발되었으며, Fedora 18부터 도입되어 Fedora 22부터 기본 패키지 관리자로 채택되었습니다.

YUM vs DNF 비교

항목차이
의존성 해결DNF는 libsolv 라이브러리 사용으로 훨씬 빠르고 정확
메모리 사용DNF가 YUM보다 메모리 효율이 높음
APIDNF는 Python 3 기반, YUM은 Python 2 기반
성능DNF가 더 빠른 패키지 검색 및 설치 속도 제공
호환성DNF는 YUM 플러그인과 일부 호환

2️⃣ 기본 문법

dnf [옵션] <명령어> [패키지명]

# sudo를 붙여 관리자 권한으로 실행하는 것이 일반적입니다:
sudo dnf [명령어] [패키지명]

3️⃣ 자주 쓰는 명령어

시스템 업데이트

명령어설명
sudo dnf update설치된 모든 패키지를 최신 버전으로 업데이트
sudo dnf upgradeupdate와 동일 (오래된 패키지 제거 포함 가능)
– update 기존 패키지 업데이트
– upgrade update + obsolete 패키지 제거 가능
sudo dnf check-update업데이트 가능한 패키지 목록만 확인 (실제 업데이트 안 함)
sudo dnf update 패키지명특정 패키지만 업데이트

패키지 설치 / 제거

명령어설명
sudo dnf install 패키지명패키지 설치
sudo dnf remove 패키지명패키지 제거 (의존성 패키지도 함께 제거)
sudo dnf reinstall 패키지명패키지 재설치
sudo dnf autoremove더 이상 필요 없는 의존성 패키지 자동 제거
– remove 패키지 제거
– autoremove 더 이상 필요 없는 의존성 패키지 제거
sudo dnf install 파일.rpm로컬 RPM 파일 설치
sudo dnf install nginx git vim패키지 여러개 설치 예시 (nginx , git, vim)

패키지 검색 및 정보

명령어설명
dnf search 키워드패키지 이름/설명에서 키워드 검색
dnf info 패키지명패키지 상세 정보 출력 (버전, 크기, 설명 등)
dnf list installed설치된 모든 패키지 목록
dnf list available설치 가능한 패키지 목록
dnf provides 파일경로특정 파일을 제공하는 패키지 찾기
dnf repoquery 패키지명저장소에서 패키지 상세 쿼리

저장소(Repository) 관리

명령어설명
dnf repolist활성화된 저장소 목록 확인
dnf repolist all비활성화 포함 전체 저장소 목록
sudo dnf config-manager –add-repo URL저장소 추가
sudo dnf config-manager –enable 저장소명저장소 활성화
sudo dnf config-manager –disable 저장소명저장소 비활성화

캐시 관리

명령어설명
sudo dnf clean all모든 캐시 삭제 (패키지, 메타데이터 등)
sudo dnf clean packages다운로드된 패키지 캐시만 삭제
sudo dnf makecache저장소 메타데이터 캐시 강제 갱신
(저장소 메타데이터를 미리 다운로드하여 캐시 생성)

4️⃣ 자주 쓰는 옵션

명령어설명
-y / –assumeyes모든 질문에 자동으로 ‘yes’ 응답 (자동화 스크립트에 유용)
-q / –quiet출력 최소화
–nobest최신 버전 설치 실패 시 이전 버전으로 대체 허용
–skip-broken의존성 충돌 패키지를 건너뛰고 나머지 설치
–downloadonly설치하지 않고 패키지만 다운로드
–downloaddir=경로다운로드 저장 경로 지정
–exclude=패키지명특정 패키지를 업데이트/설치에서 제외
–enablerepo=저장소명비활성 저장소를 이번 명령에서만 임시 활성화
–disablerepo=저장소명이번 명령에서만 특정 저장소 비활성화

5️⃣ 실용 예시

sudo dnf update 상세 설명

가장 많이 쓰이는 명령어입니다. 

시스템에 설치된 모든 패키지를 저장소의 최신 버전으로 업데이트합니다.

sudo dnf update

실행 시 순서:

  • 저장소 메타데이터 갱신
  • 업데이트 가능한 패키지 목록 계산
  • 사용자에게 변경 사항 요약 출력 후 확인
  • 패키지 다운로드 및 설치/업데이트 진행

자동화 스크립트에서 사용

sudo dnf update -y
sudo dnf install -y nginx git vim

패키지 검색 후 설치

dnf search nginx
dnf info nginx
sudo dnf install nginx

특정 버전 설치

sudo dnf install 패키지명-버전번호

그룹 패키지 설치

sudo dnf groupinstall "Development Tools"
dnf grouplist

히스토리 관리

DNF로 수행한 모든 작업 기록 확인

dnf history
dnf history info 10
sudo dnf history undo 10

동기화

저장소 기준으로 패키지 버전을 정확하게 동기화
(upgrade 또는 downgrade 모두 가능)

sudo dnf distro-sync

패키지 의존성 확인

dnf deplist nginx

패키지 확인

rpm -qa | grep nginx
또
dnf list installed | grep nginx

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤