메뉴 닫기

리눅스 YUM & DNF 기본 사용법 CentOS와 Fedora 패키지 관리 완벽 가이드

💻 리눅스 YUM & DNF 기본 사용법 CentOS와 Fedora 패키지 관리 완벽 가이드

📌 yum install부터 dnf update까지 RPM 기반 시스템 관리의 모든 것

리눅스에서 패키지를 설치하거나 업데이트할 때, 단순히 명령어만 외우는 것보다 그 동작 원리를 이해하는 것이 훨씬 효율적입니다.
CentOS와 Fedora처럼 RPM 기반 배포판에서는 YUMDNF가 핵심적인 역할을 합니다.
하지만 두 도구의 차이와 각각의 장단점을 잘 모르는 경우도 많죠.
이번 글에서는 초보자도 쉽게 따라 할 수 있도록 설치, 업데이트, 제거 명령의 기본부터 알아두면 좋은 활용 팁까지 꼼꼼히 정리해 드리겠습니다.

단순한 명령어 나열이 아닌, 실제 서버나 개발 환경에서 바로 적용할 수 있는 실용적인 내용을 중심으로 다룹니다.
yum과 dnf의 차이점, 자주 쓰이는 옵션, 그리고 시스템 관리 시 주의할 점까지 단계별로 살펴보며, 안정적이고 효율적인 패키지 관리를 도와드릴 예정입니다.
글 말미에는 FAQ를 통해 자주 묻는 질문과 답변도 준비했으니, 끝까지 읽어보시면 리눅스 패키지 관리의 흐름이 한눈에 정리될 것입니다.



🔍 YUM과 DNF의 차이점

CentOS, Fedora, RHEL(Red Hat Enterprise Linux) 등 RPM 기반 배포판에서 패키지 관리의 중심에는 YUM(Yellowdog Updater, Modified)과 DNF(Dandified YUM)가 있습니다.
YUM은 오랫동안 CentOS와 RHEL의 기본 패키지 관리자였지만, DNF는 더 빠른 속도와 향상된 의존성 해결 능력을 제공하며 차세대 표준으로 자리잡았습니다.

두 도구 모두 패키지 설치, 업데이트, 제거 기능을 제공하지만, 내부 동작 방식에 차이가 있습니다.
YUM은 Python 2 기반이며 의존성 처리 시 메모리 사용량이 다소 높고 속도가 느릴 수 있습니다.
반면 DNF는 Python 3 기반으로, libsolv 라이브러리를 활용해 의존성 문제를 더 정밀하게 처리하며, 병렬 다운로드 기능을 지원해 설치 속도가 개선되었습니다.

  • DNF는 YUM 대비 속도와 효율성이 개선됨
  • 🧩libsolv 기반의 정확한 의존성 해결 가능
  • 📜Python 3 지원으로 미래 호환성 확보

Fedora는 이미 오래전부터 YUM 대신 DNF를 기본으로 채택했으며, CentOS 8 이후 버전에서도 DNF가 기본 명령어로 사용됩니다.
다만, 호환성을 위해 yum 명령을 입력해도 내부적으로 DNF가 실행되도록 설정되어 있는 경우가 많습니다.

CODE BLOCK
# YUM 버전 확인
yum --version

# DNF 버전 확인
dnf --version

💡 TIP: DNF는 기본적으로 YUM의 하위 호환성을 제공하므로, 기존 YUM 사용자라도 명령어를 거의 그대로 사용할 수 있습니다.

⚙️ yum install 명령 사용법

패키지 설치는 YUM의 가장 기본적인 기능입니다.
CentOS 7 이하 버전이나 RHEL 7 환경에서는 여전히 yum install 명령이 널리 사용됩니다.
이 명령은 지정한 패키지와 그에 필요한 모든 의존성을 자동으로 찾아 설치합니다.

예를 들어, nano 텍스트 편집기를 설치하려면 아래와 같이 입력합니다.
명령 실행 시 root 권한이 필요하므로, 일반 사용자라면 sudo를 반드시 붙여야 합니다.

CODE BLOCK
# nano 설치
sudo yum install nano

설치 과정에서 ‘y/N’ 형태로 진행 여부를 묻는 경우가 있습니다.
이때 -y 옵션을 함께 사용하면 모든 질문에 자동으로 ‘Yes’를 응답하여 설치가 진행됩니다.

  • 🛠️yum install 패키지명 → 해당 패키지와 의존성 자동 설치
  • -y 옵션 → 설치 시 모든 질문 자동 승인
  • 📂캐시 사용으로 동일 패키지 재설치 시 속도 향상

설치된 패키지 목록은 yum list installed 명령으로 확인할 수 있으며, 특정 패키지가 설치되어 있는지 여부를 빠르게 파악할 수 있습니다.

⚠️ 주의: YUM을 통한 설치 시, 레포지토리 설정이 올바르지 않으면 패키지를 찾을 수 없거나 잘못된 버전이 설치될 수 있습니다. 설치 전 yum repolist 명령으로 활성화된 저장소를 확인하세요.



🔄 dnf update로 시스템 업데이트

DNF는 Fedora와 CentOS 8 이상에서 기본 패키지 관리자이며, dnf update 명령은 설치된 패키지를 최신 버전으로 유지하는 데 사용됩니다.
이 명령은 시스템의 모든 패키지를 업데이트할 수 있으며, 보안 패치 적용에도 필수적입니다.

일반적인 전체 업데이트 명령은 다음과 같습니다.
-y 옵션을 추가하면 모든 확인 과정을 자동으로 승인합니다.

CODE BLOCK
# 전체 시스템 업데이트
sudo dnf update -y

특정 패키지만 업데이트하려면 패키지명을 함께 지정합니다.
예를 들어, httpd 패키지를 업데이트하려면 다음과 같이 입력합니다.

CODE BLOCK
# 특정 패키지 업데이트
sudo dnf update httpd

  • 🔒정기적으로 dnf update 실행 → 보안 취약점 예방
  • 🧹업데이트 후 dnf clean all로 캐시 정리
  • 병렬 다운로드 기능으로 속도 향상

업데이트 시 커널이 변경되면 시스템 재부팅이 필요할 수 있습니다.
특히 서버 환경에서는 서비스 중단을 최소화하기 위해 유지보수 시간에 맞춰 업데이트를 진행하는 것이 안전합니다.

💡 TIP: Fedora와 최신 CentOS 버전은 dnf upgrade 명령도 지원하며, update와 동일하게 동작합니다.

🗑️ dnf remove로 패키지 제거

시스템에서 불필요한 패키지를 정리하는 것은 보안과 성능 유지에 중요합니다.
dnf remove 명령은 지정한 패키지와 해당 의존성 패키지를 안전하게 제거합니다.
이 명령은 Fedora, CentOS 8 이상, RHEL 8 이상에서 기본적으로 사용됩니다.

예를 들어, nano 패키지를 삭제하려면 다음과 같이 실행합니다.

CODE BLOCK
# nano 제거
sudo dnf remove nano

삭제 시에도 -y 옵션을 사용하면 사용자 확인 과정을 생략하고 즉시 제거를 진행합니다.
또한, 관련된 설정 파일이나 캐시를 완전히 정리하려면 dnf autoremove 명령을 사용할 수 있습니다.

  • 🗑️dnf remove 패키지명 → 지정한 패키지 제거
  • 🧹dnf autoremove → 사용하지 않는 의존성 패키지 자동 제거
  • ⚠️중요 시스템 패키지 제거 시 시스템 불안정 가능

패키지를 제거할 때는 해당 패키지가 다른 프로그램에 영향을 주지 않는지 반드시 확인해야 합니다.
특히 서버 환경에서는 테스트 환경에서 먼저 제거 과정을 시뮬레이션한 후 본 서버에 적용하는 것이 안전합니다.

⚠️ 주의: 핵심 시스템 패키지를 제거하면 OS 부팅이나 네트워크 기능에 문제가 생길 수 있습니다.
제거 전 반드시 dnf repoquery –whatrequires 패키지명 명령으로 의존성을 확인하세요.



💡 패키지 관리 시 유용한 옵션

YUM과 DNF를 사용할 때는 기본 명령 외에도 효율적이고 안전한 패키지 관리를 위해 알아두면 좋은 옵션들이 있습니다.
이 옵션들을 잘 활용하면 설치와 업데이트 속도를 높이고, 문제 발생 시 신속하게 대처할 수 있습니다.

⚡ 속도 향상을 위한 옵션

DNF에서는 병렬 다운로드 기능을 활성화해 설치와 업데이트 속도를 높일 수 있습니다.
설정 파일(/etc/dnf/dnf.conf)에 다음과 같은 항목을 추가합니다.

CODE BLOCK
max_parallel_downloads=10
fastestmirror=True

🛡️ 문제 해결과 롤백

업데이트 후 문제가 발생하면 dnf history 명령을 사용해 이전 상태로 복구할 수 있습니다.
특정 트랜잭션을 되돌리려면 dnf history undo ID 명령을 실행합니다.

CODE BLOCK
# 업데이트 이력 확인
sudo dnf history

# 특정 이력 되돌리기
sudo dnf history undo 25

🧹 시스템 청소

패키지를 자주 설치하고 제거하다 보면 불필요한 캐시와 의존성 패키지가 남을 수 있습니다.
다음 명령으로 이를 정리하면 디스크 공간을 절약할 수 있습니다.

CODE BLOCK
sudo dnf clean all
sudo dnf autoremove

💎 핵심 포인트:
패키지 관리 시 유용한 옵션을 알고 있으면 설치·업데이트 속도를 높이고, 오류 발생 시 빠른 복구가 가능합니다. 또한 정기적인 청소 명령으로 시스템을 깔끔하게 유지할 수 있습니다.

자주 묻는 질문 (FAQ)

YUM과 DNF 중 어느 것을 사용해야 하나요?
최신 Fedora, CentOS 8 이상, RHEL 8 이상에서는 DNF가 기본이므로 DNF를 사용하는 것이 좋습니다. 구버전 환경에서는 YUM을 사용하게 됩니다.
yum install과 dnf install의 차이가 있나요?
명령 구조와 기본 기능은 거의 동일합니다. DNF는 의존성 처리와 속도 면에서 향상되었으며, 병렬 다운로드 기능도 제공합니다.
dnf update와 dnf upgrade는 어떻게 다른가요?
실제 동작은 동일합니다. 다만, 일부 문서에서는 upgrade가 업데이트뿐 아니라 오래된 패키지 교체까지 포함한다고 설명하기도 합니다.
패키지 삭제 후 의존성 패키지도 자동으로 제거되나요?
기본적으로는 남아 있을 수 있습니다. dnf autoremove 명령을 실행하면 사용되지 않는 의존성 패키지를 정리할 수 있습니다.
dnf update 후 재부팅이 필요한 경우는 언제인가요?
커널이나 핵심 시스템 라이브러리가 업데이트되면 재부팅이 필요합니다. 이 경우 보안 및 안정성을 위해 즉시 재부팅하는 것이 좋습니다.
설치 가능한 패키지 목록을 확인하는 방법은?
dnf list available 명령을 실행하면 현재 활성화된 저장소에서 설치 가능한 패키지 목록을 볼 수 있습니다.
저장소 설정은 어떻게 변경하나요?
/etc/yum.repos.d/ 디렉터리 내의 .repo 파일을 수정하여 저장소를 추가하거나 비활성화할 수 있습니다.
YUM과 DNF에서 동일한 옵션을 사용해도 되나요?
대부분의 옵션은 동일하게 동작하지만, 일부 고급 옵션은 버전에 따라 차이가 있으므로 공식 문서를 확인하는 것이 안전합니다.

🖥️ 리눅스 패키지 관리, 안정성과 효율성을 동시에

YUM과 DNF는 RPM 기반 리눅스 배포판에서 필수적인 패키지 관리 도구입니다.
이 글에서는 YUM과 DNF의 차이점, yum install과 dnf update, dnf remove의 사용법, 그리고 패키지 관리 시 유용한 옵션까지 모두 살펴보았습니다.
각 명령은 단순한 설치·삭제를 넘어 시스템의 안정성과 보안을 유지하는 핵심 역할을 합니다.

특히, DNF는 병렬 다운로드와 개선된 의존성 관리로 최신 환경에서 더 빠르고 안정적인 패키지 관리를 가능하게 합니다.
정기적인 업데이트와 불필요한 패키지 정리를 병행하면 시스템 성능을 최적화할 수 있으며, 문제가 발생했을 때는 dnf history를 활용한 롤백으로 신속하게 복구할 수 있습니다.

마지막으로, 명령어를 외우는 것보다 원리를 이해하고 상황에 맞는 옵션을 활용하는 것이 중요합니다.
이렇게 하면 단순 관리자가 아니라 능동적으로 시스템을 다루는 숙련된 리눅스 사용자로 성장할 수 있습니다.


🏷️ 관련 태그 : 리눅스, YUM, DNF, CentOS, Fedora, 패키지관리, 서버운영, 시스템업데이트, 명령어, RPM