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보다 메모리 효율이 높음 |
| API | DNF는 Python 3 기반, YUM은 Python 2 기반 |
| 성능 | DNF가 더 빠른 패키지 검색 및 설치 속도 제공 |
| 호환성 | DNF는 YUM 플러그인과 일부 호환 |
2️⃣ 기본 문법
dnf [옵션] <명령어> [패키지명] # sudo를 붙여 관리자 권한으로 실행하는 것이 일반적입니다: sudo dnf [명령어] [패키지명]
3️⃣ 자주 쓰는 명령어
시스템 업데이트
| 명령어 | 설명 |
| sudo dnf update | 설치된 모든 패키지를 최신 버전으로 업데이트 |
| sudo dnf upgrade | update와 동일 (오래된 패키지 제거 포함 가능) – 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



