Linux / 명령어 / dnf - RPM 계열에서 패키지·저장소 관리

dnf는 Fedora·RHEL 계열과 Rocky Linux·AlmaLinux에서 저장소 패키지를 검색·설치·제거·업그레이드하는 명령입니다. 배포판과 버전에 따라 DNF 구현 및 지원 옵션이 다를 수 있습니다.

dnf 명령어란?

DNF는 저장소 메타데이터를 활용해 패키지 후보와 의존성을 계산합니다. install은 필요한 의존성도 함께 설치하고, upgrade는 설치된 패키지의 업데이트를 적용합니다. 로컬 RPM 파일도 설치할 수 있지만 일반적인 작업에서는 의존성을 해결하는 DNF가 rpm 직접 설치보다 편리합니다.

기본 문법

dnf [옵션] 명령 [패키지 ...]

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man dnf으로 현재 시스템의 설명을 확인하세요.

사용 예제

패키지 검색과 정보 확인

패키지 이름·설명과 저장소 후보를 확인합니다.

dnf search nginx
dnf info nginx

패키지 설치

변경되는 의존성 목록을 검토한 뒤 설치합니다.

sudo dnf install nginx

업데이트 확인

설치 가능한 업데이트 목록을 확인합니다. 실제 설치는 하지 않습니다.

dnf check-update

패키지의 출처와 버전 확인하기

dnf info는 패키지의 버전, 아키텍처, 저장소와 설명을 보여줍니다. 설치 전 후보와 설치된 버전을 구별해 읽어야 합니다.

dnf info bash

출력에서 확인할 항목의 예:

Name         : bash
Version      : ...
Architecture : x86_64
Repository   : ...

실제 값은 배포판·활성 저장소·시점에 따라 달라집니다. dnf check-update로 업데이트 후보를 살펴볼 수 있지만 종료 코드가 일반적인 성공·실패와 다르게 업데이트 존재를 나타낼 수 있어 스크립트에서는 문서를 확인해야 합니다. 설치·제거 전에는 제안되는 의존성 변경 목록을 읽으세요.

주요 옵션과 형식

옵션·형식 설명
search / info 패키지를 찾거나 세부 정보를 표시합니다.
install / remove 패키지를 설치하거나 제거합니다.
check-update / upgrade 업데이트 가능 여부를 확인하거나 적용합니다.
repolist 활성화된 저장소를 확인합니다.
history 이전 패키지 트랜잭션을 조회합니다.

사용할 때 주의할 점

dnf upgrade는 실행 중인 서비스와 커널 등을 바꿀 수 있으므로 변경 목록과 재시작 필요성을 확인하세요. --allowerasing은 충돌 해결을 위해 기존 패키지를 제거할 수 있습니다. 저장소를 임의로 추가하거나 검증을 끄지 말고, 설치된 버전의 dnf help로 옵션 차이를 확인하세요.

자주 묻는 질문

dnf와 rpm 중 어느 명령으로 설치하나요?

저장소 의존성까지 관리하는 일반적인 설치·업데이트에는 dnf가 적합합니다. rpm은 로컬 패키지 파일과 설치 데이터베이스를 직접 다룰 때 사용합니다.

공식 문서

옵션의 정확한 동작과 구현별 차이는 dnf 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / rmdir - 빈 디렉터리 삭제

Linux / 명령어 / rmdir - 빈 디렉터리 삭제

Linux rmdir 명령어로 빈 디렉터리와 비어 있는 상위 경로를 안전하게 삭제하는 방법을 설명합니다. rm -r과의 차이, 실패 원인과 스크립트 사용법도 알아봅니다.

Linux / 명령어 / fmt - 일반 텍스트 문단의 줄바꿈 조정

Linux / 명령어 / fmt - 일반 텍스트 문단의 줄바꿈 조정

Linux fmt 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

Linux parted 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / sudo - 다른 사용자 권한으로 명령 실행

Linux / 명령어 / sudo - 다른 사용자 권한으로 명령 실행

Linux sudo 명령어로 허용된 명령을 root 또는 다른 사용자 권한으로 실행하는 방법을 설명합니다. 주요 옵션, 인증 캐시, 리디렉션 문제, visudo와 최소 권한 sudoers 설정 원칙을 정리합니다.

Linux / 명령어 / ssh-copy-id - SSH 공개키를 원격 계정에 등록

Linux / 명령어 / ssh-copy-id - SSH 공개키를 원격 계정에 등록

Linux ssh-copy-id 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / time - 명령 실행 시간 측정

Linux / 명령어 / time - 명령 실행 시간 측정

Linux time 명령어로 명령과 파이프라인의 실행 시간 및 자원 사용량을 측정하는 방법을 설명합니다. Bash 예약어와 GNU /usr/bin/time의 차이, 출력 저장과 정확한 비교 방법을 정리합니다.

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux pkill 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / tar - 여러 파일을 묶고 압축 아카이브 풀기

Linux / 명령어 / tar - 여러 파일을 묶고 압축 아카이브 풀기

Linux tar 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / dd - 블록 단위 데이터 복사와 변환

Linux / 명령어 / dd - 블록 단위 데이터 복사와 변환

Linux dd 명령어로 파일과 블록 장치 데이터를 복사하고 변환하는 방법을 설명합니다. if와 of, 블록 크기, 진행률, 디스크 이미지 생성·복원 및 대상 장치 오지정 위험을 정리합니다.

Linux / 명령어 / uname - 커널과 시스템 아키텍처 확인

Linux / 명령어 / uname - 커널과 시스템 아키텍처 확인

Linux uname 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.