DNF 툴을 사용하여 소프트웨어 관리

Red Hat Enterprise Linux 9

DNF 소프트웨어 관리 툴을 사용하여 RPM 리포지토리의 콘텐츠 관리

Red Hat Customer Content Services

초록

DNF 툴을 사용하여 RPM 리포지토리를 통해 배포된 콘텐츠를 찾고 설치 및 활용합니다. 패키지, 모듈, 스트림 및 프로필 작업을 수행하는 방법을 알아봅니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Red Hat 문서에 관한 피드백 제공

문서에 대한 피드백에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.

Jira를 통해 피드백 제출 (등록 필요)

  1. Jira 웹 사이트에 로그인합니다.
  2. 상단 탐색 모음에서 생성 을 클릭합니다.
  3. Summary (요약) 필드에 설명 제목을 입력합니다.
  4. Description (설명) 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
  5. 대화 상자 하단에서 생성 을 클릭합니다.

1장. Red Hat Enterprise Linux 9의 소프트웨어 관리 툴

RHEL(Red Hat Enterprise Linux) 9에서 DNF 유틸리티를 사용하여 소프트웨어를 관리합니다. 이전 주요 RHEL 버전과의 호환성을 위해 yum 명령을 계속 사용할 수 있습니다. 그러나 RHEL 9에서는 yum 과 특정 수준의 호환성을 제공하는 dnf 의 별칭입니다.

참고

RHEL 8 및 RHEL 9는 DNF 를 기반으로 하지만 RHEL 7에서 사용되는 YUM 과 호환됩니다.

2장. RHEL 9의 콘텐츠 배포

다음 섹션에서는 Red Hat Enterprise Linux 9에서 소프트웨어를 배포하는 방법을 알아보십시오.

2.1. 리포지토리

RHEL(Red Hat Enterprise Linux)은 다양한 리포지토리를 통해 콘텐츠를 배포합니다. 예를 들면 다음과 같습니다.

BaseOS
BaseOS 리포지토리의 콘텐츠는 모든 설치의 기반을 제공하는 기본 운영 체제 기능의 코어 세트로 구성됩니다. 이 콘텐츠는 RPM 형식으로 사용할 수 있으며 이전 RHEL 릴리스와 유사한 지원 조건이 적용됩니다.
AppStream
AppStream 리포지토리의 콘텐츠에는 다양한 워크로드 및 사용 사례를 지원하는 추가 사용자 공간 애플리케이션, 런타임 언어 및 데이터베이스가 포함됩니다.
중요

BaseOS 및 AppStream 콘텐츠 세트는 모두 RHEL에서 필요하며 모든 RHEL 서브스크립션에서 사용할 수 있습니다.

CodeReady Linux Builder
CodeReady Linux Builder 리포지토리는 모든 RHEL 서브스크립션과 함께 사용할 수 있습니다. 이는 개발자가 사용할 수 있는 추가 패키지를 제공합니다. Red Hat은 CodeReady Linux Builder 리포지토리에 포함된 패키지를 지원하지 않습니다.

추가 리소스

2.2. Application Streams

Red Hat은 Application Streams로 여러 버전의 사용자 공간 구성 요소를 제공하며 핵심 운영 체제 패키지보다 더 자주 업데이트됩니다. 이를 통해 플랫폼 또는 특정 배포의 기본 안정성에 영향을 주지 않고 RHEL(Red Hat Enterprise Linux)을 사용자 지정할 수 있는 유연성이 향상됩니다.

Application Streams는 다음 형식으로 제공됩니다.

  • RPM 형식
  • RPM 형식의 확장인 모듈
  • 소프트웨어 컬렉션

RHEL 9는 dnf install 명령을 사용하여 설치할 수 있는 초기 Application Stream 버전을 RPM으로 제공하여 Application Streams 환경을 향상시킵니다.

RHEL 9.1부터 Red Hat은 라이프 사이클이 더 짧은 모듈로 추가 Application Stream 버전을 제공합니다.

중요

각 Application Stream에는 자체 라이프 사이클이 있으며 RHEL 9의 라이프 사이클과 동일하거나 짧을 수 있습니다. Red Hat Enterprise Linux Application Streams 라이프 사이클 을 참조하십시오.

항상 설치할 Application Stream 버전을 결정하고 RHEL Application Stream 라이프 사이클을 먼저 검토하십시오.

2.3. 모듈

모듈은 구성 요소를 나타내는 RPM 패키지 세트입니다. 일반적인 모듈에는 다음 패키지 유형이 포함되어 있습니다.

  • 애플리케이션이 있는 패키지
  • 애플리케이션별 종속성 라이브러리가 있는 패키지
  • 애플리케이션에 대한 문서가 있는 패키지
  • 도우미 유틸리티가 있는 패키지

2.4. 모듈 스트림

모듈 스트림은 AppStream 물리적 리포지토리에서 가상 리포지토리로 간주할 수 있는 필터입니다. AppStream 구성 요소의 모듈 스트림 버전입니다. 각 스트림은 개별적으로 업데이트를 수신하며 다른 모듈 스트림에 따라 달라질 수 있습니다.

모듈 스트림은 활성 또는 비활성 상태일 수 있습니다. 활성 스트림은 특정 모듈 스트림 내의 RPM 패키지에 대한 시스템 액세스를 제공하여 각 구성 요소 버전을 설치할 수 있습니다.

다음과 같은 경우 스트림이 활성화됩니다.

특정 모듈의 한 스트림만 지정된 시점에서 활성화할 수 있습니다. 따라서 특정 스트림의 패키지만 사용할 수 있습니다.

런타임 사용자 애플리케이션 또는 개발자 애플리케이션에 대한 특정 스트림을 선택하기 전에 다음을 고려하십시오.

  • 필수 기능 및 해당 기능을 지원하는 구성 요소 버전
  • 애플리케이션 또는 사용 사례와의 호환성
  • 애플리케이션 스트림의 라이프 사이클 및 업데이트 계획

사용 가능한 모든 모듈 및 스트림 목록은 패키지 매니페스트 를 참조하십시오. 구성 요소별 변경 사항은 릴리스 노트 를 참조하십시오.

2.5. 모듈 프로필

모듈 프로필은 서버, 클라이언트, 개발, 최소 설치 또는 기타와 같은 특정 사용 사례에 대해 함께 설치할 권장 패키지 목록입니다. 이러한 패키지 목록에는 일반적으로 BaseOS 리포지토리 또는 스트림의 종속 항목에서 모듈 스트림 외부의 패키지가 포함될 수 있습니다.

프로필을 사용하여 패키지를 설치하는 것은 사용자의 편의를 위해 제공되는 일회성 작업입니다. 추가 준비 단계 없이 동일한 모듈 스트림의 여러 프로필을 사용하여 패키지를 설치할 수도 있습니다.

각 모듈 스트림은 none을 포함하여 여러 프로필을 가질 수 있습니다. 지정된 모듈 스트림에 대해 일부 프로필을 기본값 으로 표시할 수 있으며 프로필을 명시적으로 지정하지 않은 경우 프로필 설치 작업에 사용됩니다. 그러나 모듈 스트림에 대한 기본 프로필이 존재할 필요는 없습니다.

예 2.1. nodejs 모듈 프로필

Node.js 런타임 환경을 제공하는 nodejs 모듈은 설치를 위해 다음 프로필을 제공합니다.

# dnf module list nodejs
Name 	   Stream	Profiles                                Summary
nodejs   18    	common [d], development, minimal, s2i   Javascript runtime
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

이 예에서는 다음 프로필을 사용할 수 있습니다.

  • 공통: 프로덕션 지원 패키지입니다. 기본 프로필([d])입니다.
  • 개발: Node.js 개발 헤더를 포함한 프로덕션 지원 패키지입니다.
  • 최소: Node.js 런타임 환경을 제공하는 최소 패키지 세트입니다.
  • s2i: Node.js S2I(Source-to-Image) Linux 컨테이너를 생성하는 데 필요한 패키지입니다.

3장. DNF 구성

DNF 및 관련 유틸리티의 구성은 /etc/dnf/dnf.conf 파일의 [main] 섹션에 저장됩니다.

다음 섹션에서 /etc/dnf/dnf.conf 구성 파일을 사용하여 DNF 를 구성하는 방법을 알아봅니다.

3.1. 현재 DNF 구성 보기

/etc/dnf/dnf.conf 파일의 [main] 섹션에는 명시적으로 설정된 설정만 포함되어 있습니다. 그러나 설정되지 않은 옵션과 기본값을 포함하여 [main] 섹션의 모든 설정을 표시할 수 있습니다.

절차

  • 글로벌 DNF 구성을 표시합니다.

    # dnf config-manager --dump

추가 리소스

  • dnf.conf(5) 도움말 페이지

3.2. DNF 기본 옵션 설정

/etc/dnf/dnf.conf 파일에는 하나의 [main] 섹션이 포함되어 있습니다. 이 섹션의 키-값 쌍은 DNF 가 리포지토리를 작동하고 처리하는 방식에 영향을 미칩니다.

절차

  1. /etc/dnf/dnf.conf 파일을 편집합니다.
  2. 요구 사항에 따라 [main] 섹션을 업데이트합니다.
  3. 변경 사항을 저장합니다.

추가 리소스

  • dnf.conf(5) 도움말 페이지의 [main] 및 OPTIONS FOR BOTH [main] 및 REPO 섹션.

3.3. DNF 플러그인 관리

설치된 모든 플러그인은 /etc/dnf/plugins/ 디렉터리에 고유한 구성 파일을 가질 수 있습니다. 이 디렉터리의 이름 플러그인 구성 파일 < plug-in_name> . conf .conf 기본적으로 플러그인은 일반적으로 활성화됩니다. 이러한 구성 파일 중 하나에서 플러그인을 비활성화하려면 파일에 다음을 추가합니다.

[main]
enabled=False

3.4. DNF 플러그인 활성화 및 비활성화

DNF 툴에서는 기본적으로 플러그인이 로드됩니다. 그러나 어떤 플러그인 DNF 로드에 영향을 줄 수 있습니다.

주의

잠재적인 문제를 진단하기 위해서만 모든 플러그인을 비활성화합니다. DNF 에는 product-idsubscription-manager 와 같은 특정 플러그인이 필요하며 이를 비활성화하면 Red Hat Enterprise Linux가 CDN(Content Delivery Network)에서 소프트웨어를 설치하거나 업데이트할 수 없습니다.

절차

  • 다음 방법 중 하나를 사용하여 DNF 가 플러그인을 사용하는 방법에 영향을 미칩니다.

    • DNF 플러그인 로드를 전역적으로 활성화하거나 비활성화하려면 plugins 매개변수를 /etc/dnf/dnf.conf 파일의 [main] 섹션에 추가합니다.

      • plugins=1 (기본값)을 설정하여 모든 DNF 플러그인을 로드할 수 있습니다.
      • plugins=0 을 설정하여 모든 DNF 플러그인 로드를 비활성화합니다.
    • 특정 플러그인을 비활성화하려면 /etc/dnf/plugins/ <plug-in_name > .conf 파일의 [main] 섹션에 enabled=False 를 추가합니다.
    • 특정 명령의 모든 DNF 플러그인을 비활성화하려면 명령에 --noplugins 옵션을 추가합니다. 예를 들어 단일 업데이트 명령에 대해 DNF 플러그인을 비활성화하려면 다음을 입력합니다.

      # dnf --noplugins update
    • 단일 명령에 대해 특정 DNF 플러그인을 비활성화하려면 명령에 --disableplugin=plugin-name 옵션을 추가합니다. 예를 들어 단일 업데이트 명령에 대해 특정 DNF 플러그인을 비활성화하려면 다음을 입력합니다.

      # dnf update --disableplugin=<plugin_name>
    • 단일 명령에 특정 DNF 플러그인을 활성화하려면 명령에 --enableplugin=plugin-name 옵션을 추가합니다. 예를 들어 단일 업데이트 명령에 특정 DNF 플러그인을 활성화하려면 다음을 입력합니다.

      # dnf update --enableplugin=<plugin_name>

4장. RHEL 9 콘텐츠 검색

다음 섹션에서는 DNF 를 사용하여 Red Hat Enterprise Linux 9에서 AppStream 및 BaseOS 리포지토리의 콘텐츠를 찾고 검사하는 방법을 설명합니다.

4.1. 소프트웨어 패키지 검색

필요한 소프트웨어를 제공하는 패키지를 식별하기 위해 DNF 를 사용하여 리포지토리를 검색할 수 있습니다.

절차

  • 시나리오에 따라 다음 옵션 중 하나를 사용하여 리포지토리를 검색합니다.

    • 패키지 이름 또는 요약에서 용어를 검색하려면 다음을 입력합니다.

      $ dnf search <term>
    • 패키지 이름, 요약 또는 설명에서 용어를 검색하려면 다음을 입력합니다.

      $ dnf search --all <term>

      --all 옵션을 사용하여 설명에서 추가로 검색하는 것은 일반적인 검색 작업보다 느립니다.

    • 패키지 이름을 검색하고 출력에 패키지 이름과 해당 버전을 나열하려면 다음을 입력합니다.

      $ dnf repoquery <package_name>
    • 파일을 제공하는 패키지를 검색하려면 파일 이름 또는 파일의 경로를 지정합니다.

      $ dnf provides <file_name>

4.2. 소프트웨어 패키지 나열

DNF 를 사용하여 리포지토리에서 사용할 수 있는 패키지 및 해당 버전 목록을 표시할 수 있습니다. 필요한 경우 이 목록을 필터링할 수 있으며, 예를 들어 사용 가능한 업데이트의 패키지만 나열할 수 있습니다.

절차

  • 아키텍처, 버전 번호, 설치 위치 리포지토리를 포함하여 사용 가능한 모든 패키지의 최신 버전을 나열합니다.

    $ dnf list --all
    ...
    zlib.x86_64         1.2.11-39.el9   @rhel-9-for-x86_64-baseos-rpms
    zlib.i686           1.2.11-39.el9   rhel-9-for-x86_64-baseos-rpms
    zlib-devel.i686     2.11-39.el9     rhel-9-for-x86_64-appstream-rpms
    zlib-devel.x86_64   1.2.11-39.el9   rhel-9-for-x86_64-appstream-rpms
    ...

    리포지토리 앞의 @ 기호는 이 행의 패키지가 현재 설치되어 있음을 나타냅니다.

    또는 버전 번호 및 아키텍처를 포함하여 사용 가능한 모든 패키지를 표시하려면 다음을 입력합니다.

    $ dnf repoquery
    ...
    zlib-0:1.2.11-35.el9_1.i686
    zlib-0:1.2.11-35.el9_1.x86_64
    zlib-0:1.2.11-39.el9.i686
    zlib-0:1.2.11-39.el9.x86_64
    zlib-devel-0:1.2.11-39.el9.i686
    zlib-devel-0:1.2.11-39.el9.x86_64
    ...

    선택적으로 --all 대신 다른 옵션을 사용하여 출력을 필터링할 수 있습니다. 예를 들면 다음과 같습니다.

    • 설치된 패키지만 나열하려면 -- installed 를 사용합니다.
    • 사용 가능한 모든 패키지를 나열하려면 --available 을 사용합니다.
    • --upgrades 를 사용하여 최신 버전을 사용할 수 있는 패키지를 나열합니다.
    참고

    전역 표현식을 인수로 추가하여 결과를 필터링할 수 있습니다. 자세한 내용은 DNF 입력에서 글로벌 표현식 지정 을 참조하십시오.

4.3. 리포지토리 나열

시스템에서 활성화 및 비활성화된 리포지토리의 개요를 보려면 나열할 수 있습니다.

절차

  1. 시스템에서 활성화된 모든 리포지토리를 나열합니다.

    $ dnf repolist

    특정 리포지토리만 표시하려면 다음 옵션 중 하나를 명령에 추가합니다.

    • 비활성화된 리포지토리만 나열하려면 --disabled 를 추가합니다.
    • 활성화된 리포지토리와 비활성화된 리포지토리를 모두 나열하려면 --all 을 추가합니다.
  2. 선택 사항: 리포지토리에 대한 추가 정보를 나열합니다.

    $ dnf repoinfo <repository_name>
    참고

    글로벌 표현식을 사용하여 결과를 필터링할 수 있습니다. 자세한 내용은 DNF 입력에서 글로벌 표현식 지정 을 참조하십시오.

4.4. 패키지 정보 표시

DNF 리포지터리를 쿼리하여 다음과 같은 패키지에 대한 추가 세부 정보를 표시할 수 있습니다.

  • 버전
  • 릴리스 버전
  • 아키텍처
  • 패키지 크기
  • 설명

절차

  • 하나 이상의 사용 가능한 패키지에 대한 정보를 표시합니다.

    $ dnf info <package_name>

    이 명령은 현재 설치된 패키지에 대한 정보와 사용 가능한 경우 리포지토리에 있는 최신 버전의 정보를 표시합니다. 또는 다음 명령을 사용하여 리포지토리에 지정된 이름의 모든 패키지에 대한 정보를 표시합니다.

    $ dnf repoquery --info <package_name>
    참고

    전역 표현식을 인수로 추가하여 결과를 필터링할 수 있습니다. 자세한 내용은 DNF 입력에서 글로벌 표현식 지정 을 참조하십시오.

4.5. 제공하는 패키지 그룹 및 패키지 나열

패키지 그룹은 여러 패키지를 번들하며 패키지 그룹을 사용하여 단일 단계에서 그룹에 할당된 모든 패키지를 설치할 수 있습니다. 그러나 설치 전에 필요한 패키지 그룹의 이름을 식별해야 합니다.

절차

  1. 설치된 그룹과 사용 가능한 그룹을 모두 나열합니다.

    $ dnf group list

    dnf group list 명령에 --installed--available 옵션을 추가하여 결과를 필터링할 수 있습니다. --hidden 옵션을 사용하면 출력에 숨겨진 그룹을 표시할 수 있습니다.

  2. 특정 그룹에 포함된 필수, 선택 사항 및 기본 패키지를 나열합니다.

    $ dnf group info "<group_name>"
    참고

    전역 표현식을 인수로 추가하여 결과를 필터링할 수 있습니다. 자세한 내용은 DNF 입력에서 글로벌 표현식 지정 을 참조하십시오.

  3. 선택 사항: 설치되어 사용 가능한 그룹 수를 확인합니다.

    $ dnf group summary

4.6. 사용 가능한 모듈 및 콘텐츠 나열

모듈을 검색하고 DNF 를 사용하여 표시하면 리포지토리에서 사용할 수 있는 모듈을 식별하고 모듈을 설치하기 전에 적절한 스트림을 선택할 수 있습니다.

절차

  1. 다음 방법 중 하나로 모듈 정보를 나열합니다.

    • 사용 가능한 모든 모듈을 나열합니다.

      $ dnf module list
      Name        Stream   Profiles                               Summary
      ...
      nodejs      18       common [d], development, minimal, s2i  Javascript runtime
      postgresql  15       client, server                         PostgreSQL server and client module
      ...
      Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

      dnf 모듈 목록 & lt;module_name > 명령을 사용하여 특정 모듈에 대해서만 동일한 정보를 나열합니다.

    • 특정 패키지를 제공하는 모듈을 검색합니다.

      $ dnf module provides <package_name>

      예를 들어 npm 패키지를 제공하는 모듈과 프로필을 표시하려면 다음을 입력합니다.

      # dnf module provides npm
      npm-1:8.19.2-1.18.10.0.3.module+el9.1.0+16866+0fab0697.x86_64
      Module   : nodejs:18:9010020221009220316:rhel9:x86_64
      Profiles : common development s2i
      Repo     : rhel-9-for-x86_64-appstream-rpms
      Summary  : Javascript runtime
      ...
  2. 다음 방법 중 하나를 사용하여 모듈 세부 정보를 나열합니다.

    • 설명, 모든 프로필 목록, 모듈에서 제공하는 모든 패키지 목록을 포함하여 모듈에 대한 모든 세부 정보를 나열합니다.

      $ dnf module info <module_name>

      예를 들어 nodejs 패키지에 대한 세부 정보를 표시하려면 다음을 입력합니다.

      $ dnf module info nodejs
      Name             : nodejs
      Stream           : 18
      Version          : 9010020221009220316
      Context          : rhel9
      Architecture     : x86_64
      Profiles         : common [d], development, minimal, s2i
      Default profiles : common
      Repo             : rhel-9-for-x86_64-appstream-rpms
      Summary          : Javascript runtime
      Description      : Node.js is a platform built on Chrome's JavaScript runtime...
      Requires         : platform:[el9]
      Artifacts        : nodejs-1:18.10.0-3.module+el9.1.0+16866+0fab0697.src
                       : nodejs-1:18.10.0-3.module+el9.1.0+16866+0fab0697.x86_64
                       : npm-1:8.19.2-1.18.10.0.3.module+el9.1.0+16866+0fab0697.x86_64
      ...
    • 각 모듈 프로파일이 설치하는 패키지를 나열합니다.

      $ dnf module info --profile <module_name>

      예를 들어 nodejs 모듈에 대한 이 정보를 표시하려면 다음을 입력합니다.

      $ dnf module info --profile nodejs
      Name        : nodejs:18:9010020221009220316:rhel9:x86_64
      common      : nodejs
                  : npm
      development : nodejs
                  : nodejs-devel
                  : npm
      minimal     : nodejs
      s2i         : nodejs
                  : nodejs-nodemon
                  : npm
      ...

4.7. DNF 입력에 글로벌 표현식 지정

하나 이상의 글로벌 표현식을 인수로 추가하여 dnf 명령의 결과를 필터링할 수 있습니다.

절차

  • dnf 명령에서 전역 표현식을 사용하는 경우 다음 방법 중 하나를 사용합니다.

    • 전체 global 표현식을 단일 또는 이중 따옴표로 묶습니다.

      # dnf provides "*/<file_name>"

      절대 경로의 경우 / 또는 전체 경로가 알 수 없는 경우 와일드카드를 사용하려면 < file_name > 앞에 <file_name>을 지정해야 합니다.

    • 뒤에 백슬래시(\) 문자를 사용하여 와일드카드 문자이스케이프합니다.

      # dnf provides \*/<file_name>

5장. RHEL 9 콘텐츠 설치

다음 섹션에서는 Red Hat Enterprise Linux 9에 컨텐츠를 설치하는 방법을 알아보십시오.

5.1. 패키지 설치

소프트웨어가 기본 설치에 포함되지 않은 경우 수동으로 설치할 수 있습니다. DNF 는 종속성을 자동으로 해결하고 설치합니다.

사전 요구 사항

절차

  • 다음 방법 중 하나를 사용하여 패키지를 설치합니다.

    • 리포지토리에서 패키지를 설치하려면 다음을 입력합니다.

      # dnf install <package_name_1> <package_name_2> ...

      i686x86_64 와 같은 여러 아키텍처를 지원하는 시스템에 패키지를 설치하는 경우 패키지 이름에 패키지를 추가하여 패키지의 아키텍처를 지정할 수 있습니다.

      # dnf install <package_name>.<architecture>
    • 패키지가 제공하는 파일의 경로만 알고 있지만 패키지 이름이 아닌 경우에만 패키지를 설치하려면 이 경로를 사용하여 해당 패키지를 설치할 수 있습니다.

      # dnf install <path_to_file>
    • 로컬 RPM 파일을 설치하려면 다음을 입력합니다.

      # dnf install <path_to_RPM_file>

      패키지에 종속 항목이 있는 경우 이러한 RPM 파일의 경로도 지정합니다. 그렇지 않으면 DNF 가 리포지토리에서 종속성을 다운로드하거나 리포지토리에서 사용할 수 없는 경우 실패합니다.

추가 리소스

5.2. 패키지 그룹 설치

패키지 그룹은 여러 패키지를 번들하며 패키지 그룹을 사용하여 단일 단계에서 그룹에 할당된 모든 패키지를 설치할 수 있습니다.

사전 요구 사항

절차

  • 패키지 그룹을 설치합니다.

    # dnf group install <group_name_or_ID>

5.3. 모듈식 콘텐츠 설치

특정 소프트웨어의 경우 Red Hat은 모듈을 제공합니다. 모듈을 사용하여 특정 버전(스트림) 및 패키지 집합(프로파일)을 설치할 수 있습니다.

절차

  1. 설치할 패키지를 제공하는 모듈을 나열합니다.

    # dnf module list <module_name>

    예를 들어 nodejs 모듈에 대한 세부 정보를 나열하려면 다음을 입력합니다.

    # dnf module list nodejs
    Name     Stream   Profiles                                Summary
    nodejs   18       common [d], development, minimal, s2i   Javascript runtime
    nodejs   ...      common [d], development, minimal, s2i   Javascript runtime
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
  2. 모듈을 설치합니다.

    # dnf module install <module_name>:<stream>/<profile>

    스트림의 기본 프로필이 정의된 경우 명령에서 / <profile >을 생략하여 스트림의 이 기본 프로필을 설치할 수 있습니다.

    참고

    Red Hat Enterprise Linux 9에서는 기본 모듈 스트림이 사전 정의되어 있지 않습니다. 그러나 표시된 대로 모듈 설치 중에 스트림을 지정하는 경우 스트림을 사전에 수동으로 활성화할 필요가 없습니다.

    예를 들어 nodejs 모듈의 스트림 18 에서 기본 프로필(일반)을 설치하려면 다음을 입력합니다.

    # dnf module install nodejs:18
    =====================================================================================================
     Package                            Architecture   Version   Repository                          Size
    =====================================================================================================
    Installing group/module packages:
     nodejs                             x86_64         ...       rhel-9-for-x86_64-appstream-rpms    12 M
     npm                                x86_64         ...       rhel-9-for-x86_64-appstream-rpms   2.5 M
    Installing weak dependencies:
     nodejs-docs                        noarch         ..        rhel-9-for-x86_64-appstream-rpms   7.6 M
     nodejs-full-i18n                   x86_64         ..        rhel-9-for-x86_64-appstream-rpms   8.4 M
    Installing module profiles:
     nodejs/common
    Enabling module streams:
     nodejs                                            18

검증

  • 올바른 모듈 스트림이 활성화되고 필요한 프로파일이 설치되어 있는지 확인합니다([i]).

    # dnf module list nodejs
    Updating Subscription Management repositories.
    Last metadata expiration check: 0:33:24 ago on Mon 24 Jul 2023 04:59:01 PM CEST.
    Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
    Name     Stream   Profiles                                    Summary
    nodejs   18 [e]   common [d] [i], development, minimal, s2i   Javascript runtime
    ...
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

5.4. 사용자 정의 기본 모듈 스트림 및 프로필 정의

Red Hat Enterprise Linux 9는 AppStream 리포지토리에서 기본 스트림을 정의하지 않습니다. 그러나 기본 모듈 스트림 및 기본 모듈 프로필을 구성할 수 있습니다. 이 경우 모듈의 기본 스트림 및 프로필을 설치할 때 이 정보를 생략할 수 있습니다.

절차

  1. dnf 모듈 목록 < module_name > 명령을 사용하여 사용 가능한 스트림 및 해당 프로필을 표시합니다. 예를 들면 다음과 같습니다.

    # dnf module list nodejs
    Name     Stream   Profiles                                Summary
    nodejs   18       common [d], development, minimal, s2i   Javascript runtime

    이 예에서 nodejs:18 은 기본 스트림으로 설정되지 않으며 이 스트림의 기본 프로필은 일반적입니다.

  2. /etc/dnf/modules.defaults.d/ 디렉터리에 YAML 파일을 생성하여 모듈에 대한 기본 스트림 및 프로필을 정의합니다.

    예를 들어 다음 콘텐츠를 사용하여 /etc/dnf/modules.defaults.d/nodejs.yaml 파일을 생성하여 18 을 기본 스트림으로 정의하고 nodejs 모듈의 기본 프로필로 최소 값을 정의합니다.

    document: modulemd-defaults
    version: 1
    data:
      module: nodejs
      stream: "18"
      profiles:
          '18': [minimal]

검증

  • dnf 모듈 목록 < module_name > 명령을 사용하여 새 기본 스트림 및 프로필 설정을 확인합니다. 예를 들면 다음과 같습니다.

    # dnf module list nodejs
    Name     Stream   Profiles                                Summary
    nodejs   18 [d]   common, development, minimal [d], s2i   Javascript runtime

6장. RHEL 9 콘텐츠 업데이트

DNF 를 사용하면 시스템에 보류 중인 업데이트가 있는지 확인할 수 있습니다. 업데이트가 필요한 패키지를 나열하고 단일 패키지, 여러 패키지 또는 모든 패키지를 한 번에 업데이트하도록 선택할 수 있습니다. 업데이트하는 패키지에 종속성이 있는 경우 해당 패키지도 업데이트됩니다.

다음 섹션에서는 DNF 를 사용하여 Red Hat Enterprise Linux 9의 콘텐츠를 업데이트하는 방법을 설명합니다.

6.1. 업데이트 확인

dnf check-update 명령을 사용하여 시스템에 설치된 패키지의 사용 가능한 업데이트를 확인하려면 다음 단계를 완료합니다.

절차

  • 다음 명령을 실행하여 시스템에 설치된 패키지가 사용 가능한 업데이트가 있는지 확인합니다.

    # dnf check-update

    출력에는 사용 가능한 업데이트가 있는 패키지 목록 및 해당 종속 항목이 반환됩니다.

6.2. 패키지 업데이트

단일 패키지, 패키지 그룹 또는 모든 패키지 및 해당 종속 항목을 업데이트하려면 dnf upgrade 명령을 사용하여 다음 단계를 완료합니다.

절차

  • 모든 패키지 및 종속 항목을 업데이트하려면 다음을 사용합니다.

    # dnf upgrade
  • 단일 패키지를 업데이트하려면 다음을 사용합니다.

    # dnf upgrade package-name

    package-name 을 패키지 이름으로 바꿉니다.

  • 패키지 그룹을 업데이트하려면 다음을 사용합니다.

    # dnf group upgrade group-name

    group-name 을 패키지 그룹의 이름으로 바꿉니다.

중요

업데이트를 커널에 적용할 때 dnf upgrade 또는 dnf install 명령을 사용 중인지 여부에 관계없이 항상 새 커널을 설치합니다.

7장. RHEL 9에서 소프트웨어 업데이트 자동화

패키지 업데이트를 자동으로 확인하고 다운로드하려면 dnf-automatic 패키지에서 제공하는 DNF 자동 도구를 사용할 수 있습니다.

DNF Automatic 은 systemd 타이머, cron 작업 및 기타 이러한 툴을 사용하여 자동 및 정기적인 실행에 적합한 DNF 에 대한 대체 명령줄 인터페이스입니다.

DNF는 필요에 따라 패키지 메타데이터를 자동으로 동기화하고, 사용 가능한 업데이트를 확인한 다음 툴 구성 방법에 따라 다음 작업 중 하나를 수행합니다.

  • exit
  • 업데이트된 패키지 다운로드
  • 업데이트 다운로드 및 적용

그런 다음 작업 결과는 표준 출력 또는 이메일과 같은 선택한 메커니즘에 의해 보고됩니다.

다음 섹션에서는 Red Hat Enterprise Linux 9에서 소프트웨어 업데이트를 자동화하는 방법을 알아보십시오.

7.1. DNF 자동 설치

시스템에 DNF 자동 도구를 설치하려면 다음 단계를 완료합니다.

절차

  • dnf-automatic 패키지를 설치합니다.

    # dnf install dnf-automatic

검증

  • dnf-automatic 패키지가 있는지 확인하여 설치에 성공했는지 확인합니다.

    # rpm -qi dnf-automatic

7.2. dnf 자동 구성 파일

기본적으로 DNF Automatic/etc/dnf/automatic.conf 를 구성 파일로 사용하여 동작을 정의합니다.

구성 파일은 다음 주제 섹션으로 구분됩니다.

  • [명령] 섹션

    DNF 자동 작동 모드를 설정합니다.

  • [emitters] 섹션

    DNF 자동 결과를 보고하는 방법을 정의합니다.

  • [command_email] 섹션

    이메일을 보내는 데 사용되는 외부 명령의 이메일 발송기 구성을 제공합니다.

  • [email] 섹션

    이메일 발송기 구성을 제공합니다.

  • [base] 섹션

    DNF 의 기본 구성 파일의 설정을 재정의합니다.

/etc/dnf/automatic.conf 파일의 기본 설정에서 DNF 는 사용 가능한 업데이트를 자동으로 점검하고, 해당 업데이트를 다운로드하고, 결과를 표준 출력으로 보고합니다.

주의

[commands] 섹션의 작업 모드 설정은 dnf-automatic.timer 를 제외한 모든 타이머 장치에 대해 systemd 타이머 장치에서 사용하는 설정에 의해 재정의됩니다.

7.3. DNF 자동 활성화

DNF 자동 을 실행하려면 항상 특정 systemd 타이머 장치를 활성화하고 시작해야 합니다. dnf-automatic 패키지에 제공된 타이머 장치 중 하나를 사용하거나 필요에 따라 자체 타이머 장치를 작성할 수 있습니다.

시스템에서 DNF 자동 을 활성화하려면 다음 단계를 완료합니다.

사전 요구 사항

  • /etc/dnf/automatic.conf 구성 파일을 수정하여 DNF 자동 동작을 지정했습니다.

절차

  • 사용 가능한 업데이트를 다운로드하는 systemd 타이머 장치를 선택, 활성화 및 시작하려면 다음을 사용합니다.

    # systemctl enable dnf-automatic-download.timer
    
    # systemctl start dnf-automatic-download.timer
  • 사용 가능한 업데이트를 다운로드하고 설치하는 systemd 타이머 장치를 선택, 활성화 및 시작하려면 다음을 사용합니다.

    # systemctl enable dnf-automatic-install.timer
    # systemctl start dnf-automatic-install.timer
  • 사용 가능한 업데이트를 보고하는 systemd 타이머 장치를 선택, 활성화 및 시작하려면 다음을 사용합니다.

    # systemctl enable dnf-automatic-notifyonly.timer
    # systemctl start dnf-automatic-notifyonly.timer
  • 사용 가능한 업데이트를 다운로드, 다운로드 및 설치 또는 보고서를 다운로드하는 systemd 타이머 장치를 선택, 활성화, 시작하려면 다음을 사용하십시오.

    # systemctl enable dnf-automatic.timer
    # systemctl start dnf-automatic.timer
  • 필요한 경우 --now 옵션을 사용하여 하나의 명령에서 systemd 타이머 장치를 선택, 활성화 및 시작합니다. 예를 들면 다음과 같습니다.

    # systemctl enable --now dnf-automatic-download.timer
참고

명령줄에서 직접 또는 사용자 지정 스크립트에서 /usr/bin/dnf-automatic 파일을 실행하여 DNF 자동 를 실행할 수도 있습니다.

검증

  • 타이머가 활성화되어 있는지 확인합니다.

    # systemctl status <systemd timer unit>

7.4. dnf-automatic 패키지에 포함된 systemd 타이머 장치 개요

systemd 타이머 단위는 우선 순위를 두고 업데이트를 다운로드하고 적용할 때 /etc/dnf/automatic.conf 구성 파일의 설정을 재정의합니다.

예를 들어 /etc/dnf/automatic.conf 구성 파일에 download_updates = yes 를 설정했지만 dnf-automatic-notifyonly.timer 장치를 활성화한 경우 패키지가 다운로드되지 않습니다.

dnf-automatic 패키지에는 다음과 같은 systemd 타이머 장치가 포함됩니다.

표 7.1. dnf-automatic 패키지에 포함된 systemd 타이머

타이머 장치함수/etc/dnf/automatic.conf 파일의 설정을 덮어씁니다.

dnf-automatic-download.timer

패키지를 캐시로 다운로드하여 업데이트할 수 있도록 합니다.

참고: 이 타이머 장치는 업데이트된 패키지를 설치하지 않습니다. 설치를 수행하려면 dnf update 명령을 실행해야 합니다.

있음

dnf-automatic-install.timer

업데이트된 패키지를 다운로드하여 설치합니다.

있음

dnf-automatic-notifyonly.timer

리포지토리 캐시를 최신 상태로 유지하고 사용 가능한 업데이트에 대해 알리는 리포지토리 데이터만 다운로드합니다.

참고: 이 타이머 장치는 업데이트된 패키지를 다운로드하거나 설치하지 않습니다.

있음

dnf-automatic.timer

업데이트를 다운로드하고 적용할 때 이 타이머의 동작은 /etc/dnf/automatic.conf 구성 파일의 설정에 의해 지정됩니다.

기본 동작은 dnf-automatic-download.timer 단위와 동일합니다. 패키지를 다운로드하지만 설치하지는 않습니다.

없음

추가 리소스

8장. RHEL 9 콘텐츠 제거

다음 섹션에서는 DNF 를 사용하여 Red Hat Enterprise Linux 9의 컨텐츠를 제거하는 방법을 설명합니다.

8.1. 설치된 패키지 제거

dnf remove 명령을 사용하여 시스템에 설치된 패키지를 제거하려면 다음 단계를 완료합니다.

절차

  • 특정 패키지 및 사용되지 않는 종속 패키지를 모두 제거하려면 다음을 사용합니다.

    # dnf remove package-name

    package-name 을 패키지 이름으로 바꿉니다.

  • 여러 패키지와 사용되지 않는 종속 항목을 동시에 제거하려면 다음을 사용하십시오.

    # dnf remove package-name-1 package-name-2

    package-name-1package-name-2 를 패키지 이름으로 교체합니다.

참고

dnf 명령은 다른 종속 패키지와 함께 패키지를 제거합니다.

8.2. 패키지 그룹 제거

dnf group remove 명령을 사용하여 그룹 이름 또는 groupID로 패키지 그룹을 제거하려면 다음 단계를 완료합니다.

절차

  • 그룹 이름으로 패키지 그룹을 제거하려면 다음을 사용합니다.

    # dnf group remove group-name

    group-name 을 그룹의 전체 이름으로 바꿉니다.

  • groupID로 패키지 그룹을 제거하려면 다음을 사용합니다.

    # dnf group remove groupID

    groupID 를 그룹의 ID로 바꿉니다.

8.3. 설치된 모듈식 콘텐츠 제거

설치된 모듈식 콘텐츠를 제거할 때 선택한 프로필 또는 전체 스트림에서 패키지를 제거할 수 있습니다.

중요

DNF 는 종속 패키지를 포함하여 프로필 또는 스트림과 함께 설치된 패키지에 해당하는 이름이 있는 모든 패키지를 제거합니다. 특히 시스템에서 사용자 지정 리포지토리를 활성화한 경우 계속 진행하기 전에 제거할 패키지 목록을 항상 확인합니다.

8.3.1. 설치된 프로필에서 패키지 제거

프로필과 함께 설치된 패키지를 제거하면 프로필이 설치한 패키지에 해당하는 이름이 있는 모든 패키지가 제거됩니다. 여기에는 다른 프로필에 필요한 패키지를 제외하고 종속 항목이 포함됩니다.

선택한 프로필에서 패키지를 제거하려면 다음 단계를 완료합니다.

사전 요구 사항

  • dnf module install module-name:stream/profile 명령을 사용하거나 dnf install module-name:stream 명령을 사용하여 기본 프로필로 설치되었습니다.
  • 모듈식 종속성 확인에 대해 이해할 수 있습니다.

절차

  1. 선택한 프로필에 속한 패키지 설치:

    # dnf module remove module-name:stream/profile

    모듈 이름,스트림프로필을 제거할 모듈, 스트림 및 프로필로 바꿉니다.

    또는 스트림 내 설치된 모든 프로필에서 패키지를 설치 제거합니다.

    # dnf module remove module-name:stream

    이러한 작업은 프로필에 속하지 않는 스트림에서 패키지를 제거하지 않습니다.

  2. 제거 대상에서 패키지 목록을 확인하고 사용되지 않은 종속성을 제거하는 방법: 제거 트랜잭션을 진행하기 전에 다음을 수행합니다.

선택한 스트림에서 모든 패키지를 제거하려면 섹션 8.3.2 "모듈 스트림에서 모든 패키지를 이동"의 지침을 따르십시오.

예 8.1. 선택한 프로필에서 패키지 제거

다음은 nodejs:18 모듈 스트림의 development 프로필에 속하는 패키지 및 종속 항목을 제거하는 방법의 예입니다.

참고

이 예제의 출력은 간결성을 위해 편집되었습니다. 실제 출력에는 여기에 표시된 것보다 더 많은 정보가 포함될 수 있습니다.

  1. 사용 가능한 모든 프로필을 포함하여 nodejs:18 모듈 스트림을 설치합니다.

    # dnf module install nodejs:18/*
    (...)
    Dependencies resolved.
    ===================================================================================
    Package          Architecture   Version
      Repository       Size
    ===================================================================================
    Installing group/module packages:
    nodejs           x86_64         1:18.7.0-1.module+el9.1.0+16284+4fdefb2f
      rhel-AppStream   12 M
    nodejs-devel     x86_64         1:18.7.0-1.module+el9.1.0+16284+4fdefb2f
      rhel-AppStream   202 k
    nodejs-nodemon   noarch         2.0.15-1.module+el9.1.0+15718+e52ec601
      rhel-AppStream   762 k
    npm              x86_64         1:8.15.0-1.18.7.0.1.module+el9.1.0+16284+4fdefb2f
      rhel-AppStream   2.2 M
    Installing dependencies:
    brotli           x86_64         1.0.9-6.el9
      rhel-AppStream   314 k
    brotli-devel     x86_64         1.0.9-6.el9
      rhel-AppStream   36 k
    ...
    Installing weak dependencies:
    nodejs-docs      noarch         1:18.7.0-1.module+el9.1.0+16284+4fdefb2f
      rhel-AppStream   7.2 M
    nodejs-full-i18n x86_64         1:18.7.0-1.module+el9.1.0+16284+4fdefb2f
      rhel-AppStream   8.2 M
    Installing module profiles:
    nodejs/common
    nodejs/development
    nodejs/minimal
    nodejs/s2i
    
    Transaction Summary
    ===================================================================================
    Install  31 Packages
    
    Total download size: 36 M
    Installed size: 165 M
    Is this ok [y/N]: y
    (...)
    Complete!
  2. 설치된 프로필을 검사합니다.

    $ dnf module info nodejs
    ...
    Name             : nodejs
    Stream           : 18 [e] [a]
    Version          : 9010020221009220316
    Context          : rhel9
    Architecture     : x86_64
    Profiles         : common [d] [i], development [i], minimal [i], s2i [i]
    Default profiles : common
    Repo             : rhel-AppStream
    ...
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive

    모든 프로필은 출력에 표시된 대로 설치됩니다.

  3. development 프로필 및 해당 종속 항목에서 패키지를 제거합니다.

    # dnf module remove nodejs:18/development
    (...)
    Dependencies resolved.
    ========================================================================
    Package          Architecture   Version
      Repository       Size
    ========================================================================
    Removing:
    nodejs-devel     x86_64         1:18.7.0-1.module+el9.1.0+16284+4fdefb2f
      @rhel-AppStream  950 k
    Removing unused dependencies:
    brotli           x86_64         1.0.9-6.el9
      @rhel-AppStream  754 k
    brotli-devel     x86_64         1.0.9-6.el9
      @rhel-AppStream  55 k
    ...
    Disabling module profiles:
    nodejs/development
    
    Transaction Summary
    ========================================================================
    Remove  26 Packages
    
    Freed space: 8.3 M
    Is this ok [y/N]: y
  4. 제거 후 설치된 프로필을 검사합니다.

    $ dnf module info nodejs
    ...
    Name             : nodejs
    Stream           : 18 [e] [a]
    Version          : 9010020221009220316
    Context          : rhel9
    Architecture     : x86_64
    Profiles         : common [d] [i], development, minimal [i], s2i [i]
    Default profiles : common
    Repo             : rhel-AppStream
    Summary          : Javascript runtime
    ...
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive

    개발을 제외한 모든 프로필은 현재 설치되어 있습니다.

8.3.2. 모듈 스트림에서 모든 패키지 제거

모듈 스트림으로 설치된 패키지를 제거하면 스트림에서 설치한 패키지에 해당하는 이름이 있는 모든 패키지가 제거됩니다. 여기에는 다른 모듈에 필요한 패키지를 제외하고 종속 항목이 포함됩니다.

선택한 모듈 스트림에서 모든 패키지를 제거하려면 다음 단계를 완료합니다.

사전 요구 사항

  • 모듈 스트림이 활성화되었으며 스트림의 일부 패키지가 설치되어 있습니다.
  • 모듈식 종속성 확인에 대해 이해할 수 있습니다.

절차

  1. 선택한 스트림에서 모든 패키지를 삭제합니다.

    # dnf module remove --all module-name:stream

    module-namestream 을 제거할 모듈 및 스트림으로 바꿉니다.

  2. 제거 대상에서 패키지 목록을 확인하고 사용되지 않은 종속성을 제거하는 방법: 제거 트랜잭션을 진행하기 전에 다음을 수행합니다.
  3. 선택적으로 스트림을 재설정하거나 비활성화합니다.

선택한 프로필에서 패키지만 제거하려면 Section 8.3.1의 지침을 따르십시오. "설치된 프로필에서 패키지 제거".

예 8.2. 전체 스트림에서 패키지 제거

다음은 nodejs:18 모듈 스트림에서 모든 패키지를 제거하는 방법의 예입니다.

참고

이 예제의 출력은 간결성을 위해 편집되었습니다. 실제 출력에는 여기에 표시된 것보다 더 많은 정보가 포함될 수 있습니다.

  1. 사용 가능한 모든 프로필을 포함하여 nodejs:18 모듈 스트림을 설치합니다.

    # dnf module install nodejs:18/*
    (...)
    Dependencies resolved.
    ===================================================================================
    Package          Architecture   Version
      Repository       Size
    ===================================================================================
    Installing group/module packages:
    nodejs           x86_64         1:18.10.0-3.module+el9.1.0+16866+0fab0697
      rhel-AppStream   13 M
    nodejs-devel     x86_64         1:18.10.0-3.module+el9.1.0+16866+0fab0697
      rhel-AppStream   203 k
    nodejs-nodemon   noarch         2.0.15-1.module+el9.1.0+15718+e52ec601
      rhel-AppStream   762 k
    npm              x86_64         1:8.19.2-1.18.10.0.3.module+el9.1.0+16866+0fab0697
      rhel-AppStream   2.2 M
    Installing dependencies:
    brotli           x86_64         1.0.9-6.el9
      rhel-AppStream   314 k
    brotli-devel     x86_64         1.0.9-6.el9
      rhel-AppStream   36 k
    ...
    Installing weak dependencies:
    nodejs-docs      noarch         1:18.10.0-3.module+el9.1.0+16866+0fab0697
      rhel-AppStream   7.3 M
    nodejs-full-i18n x86_64         1:18.10.0-3.module+el9.1.0+16866+0fab0697
      rhel-AppStream   8.2 M
    Installing module profiles:
    nodejs/common
    nodejs/development
    nodejs/minimal
    nodejs/s2i
    Enabling module streams:
    nodejs                        18
    
    Transaction Summary
    ===================================================================================
    Install  31 Packages
    
    Total download size: 37 M
    Installed size: 167 M
    Is this ok [y/N]: y
  2. nodejs:18 모듈 스트림에서 모든 패키지를 제거합니다.

    # dnf module remove --all nodejs:18
    (...)
    Dependencies resolved.
    ===================================================================================
    Package          Architecture   Version
      Repository       Size
    ===================================================================================
    Removing:
    nodejs           x86_64         1:18.10.0-3.module+el9.1.0+16866+0fab0697
      @rhel-AppStream  43 M
    nodejs-devel     x86_64         1:18.10.0-3.module+el9.1.0+16866+0fab0697
      @rhel-AppStream  953 k
    nodejs-docs      noarch         1:18.10.0-3.module+el9.1.0+16866+0fab0697
      @rhel-AppStream  78 M
    nodejs-full-i18n x86_64         1:18.10.0-3.module+el9.1.0+16866+0fab0697
      @rhel-AppStream  29 M
    nodejs-nodemon   noarch         2.0.15-1.module+el9.1.0+15718+e52ec601
      @rhel-AppStream  2.0 M
    nodejs-packaging noarch         2021.06-4.module+el9.1.0+15718+e52ec601
      @rhel-AppStream  41 k
    npm              x86_64         1:8.19.2-1.18.10.0.3.module+el9.1.0+16866+0fab0697
      @rhel-AppStream  6.9 M
    Removing unused dependencies:
    brotli           x86_64         1.0.9-6.el9
      @rhel-AppStream  754 k
    brotli-devel     x86_64         1.0.9-6.el9
      @rhel-AppStream  55 k
    ...
    Disabling module profiles:
    nodejs/common
    nodejs/development
    nodejs/minimal
    nodejs/s2i
    
    
    Transaction Summary
    ===================================================================================
    Remove  31 Packages
    
    Freed space: 167 M
    Is this ok [y/N]: y
  3. 제거 후 nodejs 모듈을 검사합니다.

    $ dnf module info nodejs
    ...
    Name             : nodejs
    Stream           : 18 [e] [a]
    Version          : 9010020221009220316
    Context          : rhel9
    Architecture     : x86_64
    Profiles         : common [d], development, minimal, s2i
    Default profiles : common
    ...
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive

    현재 Node.js 모듈 스트림이 설치되지 않았습니다.

8.4. 추가 리소스

9장. 패키지 관리 내역 처리

dnf history 명령을 사용하면 다음 정보를 확인할 수 있습니다.

  • DNF 트랜잭션 타임라인
  • 트랜잭션이 발생한 날짜 및 시간
  • 트랜잭션의 영향을 받는 패키지 수
  • 트랜잭션이 성공했는지 또는 중단되었는지 여부
  • 트랜잭션 간에 RPM 데이터베이스가 변경된 경우

dnf history 명령을 사용하여 트랜잭션을 취소하거나 다시 실행할 수도 있습니다.

다음 섹션에서는 dnf history 명령을 사용하여 패키지 관리 기록을 처리하는 방법을 알아봅니다.

9.1. 트랜잭션 나열

최신 DNF 트랜잭션을 나열하려면 선택한 패키지의 최신 작업 및 특정 트랜잭션의 세부 정보를 나열하려면 다음 단계를 완료합니다.

절차

  • 모든 최신 DNF 트랜잭션 목록을 표시하려면 다음을 사용합니다.

    # dnf history
    참고

    출력의 Action(s) 열에는 트랜잭션 중에 수행된 작업 유형이 표시됩니다(예: Install (I), Upgrade (U)), Remove (E) 및 기타 작업. 대체 열에 는 트랜잭션 중에 수행된 작업 수가 표시됩니다. 작업 수에도 트랜잭션 결과가 올 수 있습니다. Action(s)Altered 열의 값에 대한 자세한 내용은 dnf(8) 도움말 페이지를 참조하십시오.

  • 선택한 패키지에 대한 모든 최신 작업 목록을 표시하려면 다음을 사용합니다.

    # dnf history list package-name

    package-name 을 패키지 이름으로 바꿉니다.

  • 특정 트랜잭션의 세부 정보를 표시하려면 다음을 사용합니다.

    # dnf history info transactionID

    transactionID 를 트랜잭션의 ID로 바꿉니다.

참고

전역 표현식을 추가하여 명령 출력을 필터링할 수 있습니다. 자세한 내용은 dnf 입력에서 글로벌 표현식 지정을 참조하십시오.

추가 리소스

  • dnf(8) 도움말 페이지

9.2. DNF 트랜잭션 복원

RHEL 9에서는 다음과 같은 두 가지 방법으로 DNF 트랜잭션을 되돌릴 수 있습니다.

  • dnf history undo 명령을 사용하여 단일 DNF 트랜잭션을 되돌립니다.
  • dnf history rollback 명령을 사용하여 지정된 트랜잭션과 마지막 트랜잭션 간에 수행되는 모든 DNF 트랜잭션을 되돌립니다.
중요

dnf history undodnf history rollback 명령을 주의해서 사용하십시오. RHEL 패키지, 특히 selinux selinux-policy-*, kernel,glibc ( gcc와 같은 glibc ) 패키지를 이전 버전으로 다운그레이딩하는 것은 지원되지 않습니다. 따라서 시스템을 부 버전(예: RHEL 9.1에서 RHEL 9.0로) 다운그레이드하는 것은 바람직하지 않은 상태로 시스템을 종료할 수 있으므로 권장되지 않습니다.

9.2.1. dnf history undo를 사용하여 단일 DNF 트랜잭션 복원

dnf history undo 명령을 사용하여 단일 트랜잭션 내에서 수행되는 단계를 되돌릴 수 있습니다.

트랜잭션이 새 패키지를 설치한 경우 dnf history에서 실행 취소를 실행 취소합니다. 트랜잭션이 패키지를 설치 제거하면 dnf history에서 패키지를 다시 설치 취소합니다. 이전 패키지를 계속 사용할 수 있는 경우 dnf history undo 명령은 업데이트된 패키지를 이전 버전으로 다운그레이드하려고 합니다.

참고

이전 패키지 버전을 사용할 수 없는 경우 dnf history undo 명령을 사용하여 다운그레이드가 실패합니다.

dnf history undo 명령을 사용하여 단일 트랜잭션을 되돌리려면 다음 단계를 완료합니다.

절차

  1. 되돌리려는 트랜잭션의 ID를 확인합니다.

    # dnf history
  2. 선택 사항: 세부 정보를 표시하여 되돌릴 트랜잭션인지 확인합니다.

    # dnf history info transaction_id

    transaction_id 를 되돌리려는 트랜잭션의 ID로 바꿉니다.

  3. 트랜잭션을 되돌립니다.

    # dnf history undo transaction_id

    transaction_id 를 되돌리려는 트랜잭션의 ID로 바꿉니다.

예 9.1. dnf history undo 명령을 사용하여 단일 DNF 트랜잭션 복원

다음은 dnf history undo 명령을 사용하여 unzip 패키지의 설치 트랜잭션을 되돌리는 방법의 예입니다.

  1. unzip 패키지를 설치합니다.

    # dnf install unzip
    Dependencies resolved.
    ==========================================================================
     Package          Architecture      Version          Repository      Size
    ==========================================================================
    Installing:
     unzip            x86_64            6.0-56.el9       rhel            186 k
    
    Transaction Summary
    ==========================================================================
    Install  1 Package
    
    Total download size: 186 k
    Installed size: 392 k
    Is this ok [y/N]: y
  2. 되돌릴 트랜잭션 ID를 확인합니다.

    # dnf history
    ID | Command line     | Date and time     | Action(s)      | Altered
    --------------------------------------------------------------------
    13 | install zip      | 2022-11-03 10:49  | Install        |    1
    12 | install unzip    | 2022-11-03 10:49  | Install        |    1
  3. 트랜잭션을 되돌립니다.

    # dnf history undo 12

9.2.2. dnf history rollback을 사용하여 여러 DNF 트랜잭션 복원

dnf history rollback 명령을 사용하여 지정된 트랜잭션과 마지막 트랜잭션 간에 수행되는 모든 DNF 트랜잭션을 되돌릴 수 있습니다. 트랜잭션 ID로 지정된 트랜잭션은 변경되지 않은 상태로 유지됩니다.

dnf history rollback 명령을 사용하여 여러 트랜잭션을 되돌리려면 다음 단계를 완료합니다.

절차

  1. 되돌리려는 상태의 트랜잭션 ID를 확인합니다.

    # dnf history
  2. 지정된 트랜잭션을 되돌립니다.

    # dnf history rollback transaction_id

    transaction_id 를 되돌리려는 상태의 트랜잭션 ID로 바꿉니다.

    또는 트랜잭션 기록의 모든 트랜잭션을 되돌리려면 트랜잭션 ID 1 을 사용합니다.

    # dnf history rollback 1

예 9.2. dnf history rollback 명령을 사용하여 여러 DNF 트랜잭션 복원

다음은 dnf history rollback 명령을 사용하여 unzipzip 패키지의 두 개의 설치 트랜잭션을 롤백하는 방법의 예입니다.

  1. unzip 패키지를 설치합니다.

    # dnf install unzip
    Dependencies resolved.
    ========================================================================
     Package          Architecture      Version         Repository     Size
    ========================================================================
    Installing:
     unzip            x86_64            6.0-56.el9      rhel           186 k
    
    Transaction Summary
    ========================================================================
    Install  1 Package
    
    Total download size: 186 k
    Installed size: 392 k
    Is this ok [y/N]: y
  2. wget 패키지를 설치합니다.

    # dnf install wget
    Dependencies resolved.
    ========================================================================
     Package        Architecture      Version           Repository     Size
    ========================================================================
    Installing:
     wget           x86_64            1.21.1-7.el9      rhel           794 k
    
    Transaction Summary
    ========================================================================
    Install  1 Package
    
    Total download size: 794 k
    Installed size: 3.1 M
    Is this ok [y/N]: y
  3. 되돌리려는 상태의 트랜잭션 ID를 확인합니다.

    # dnf history 
    ID | Command line     | Date and time     | Action(s)   | Altered
    ------------------------------------------------------------------
    14 | install wget     | 2022-11-03 10:49  | Install     |    1
    13 | install unzip    | 2022-11-03 10:49  | Install     |    1
    12 | install vim-X11  | 2022-11-03 10:20  | Install     |  171 EE
  4. 마지막 두 개의 트랜잭션을 되돌립니다.

    # dnf history rollback 12

    이 작업은 wgetunzip 패키지를 설치 제거하지만ECDHE -X11 패키지가 설치되어 있어야 합니다.

9.3. 트랜잭션 반복

dnf history redo 명령을 사용하여 트랜잭션 중에 수행되는 단계를 반복할 수 있습니다.

선택한 트랜잭션 또는 마지막 DNF 트랜잭션을 반복하려면 다음 단계를 완료합니다.

절차

  • 특정 트랜잭션을 반복하려면 다음을 사용합니다.

    # dnf history redo transactionID

    transactionID 를 트랜잭션의 ID로 바꿉니다.

  • 마지막 트랜잭션을 반복하려면 다음을 사용합니다.

    # dnf history redo last

10장. 사용자 정의 소프트웨어 리포지토리 관리

/etc/dnf/dnf.conf 파일에서 또는 /etc/ yum .repo s.d/ 디렉터리의 .repo 파일에서 리포지토리를 구성할 수 있습니다.

DNF 및 관련 유틸리티의 구성 정보는 /etc/dnf/dnf.conf 파일에 저장됩니다. 이 파일에는 [main] 섹션이 포함되어 있으며 리포지토리별 옵션을 설정할 수 있는 하나 이상의 [repository] 섹션을 포함할 수 있습니다. /etc/dnf/dnf.conf 파일의 개별 [repository] 섹션에 정의된 값은 [main] 섹션에 설정된 값을 재정의합니다.

그러나 /etc/yum.repos.d/ 디렉토리에 있는 새 또는 기존 .repo 파일에 개별 리포지토리를 정의하는 것이 좋습니다.

다음 섹션에서는 DNF 를 사용하여 사용자 지정 소프트웨어 리포지토리를 관리하는 방법을 알아봅니다.

10.1. DNF 리포지토리 옵션 설정

/etc/dnf/dnf.conf 구성 파일에는 [repository] 섹션이 포함되어 있습니다. 여기서 repository 는 고유한 리포지토리 ID입니다. [repository] 섹션을 사용하면 개별 DNF 리포지토리를 정의할 수 있습니다.

참고

충돌을 피하기 위해 Red Hat 리포지토리에서 사용하는 사용자 정의 리포지토리 이름을 지정하지 마십시오.

사용 가능한 [리포지토리] 옵션의 전체 목록은 dnf.conf(5) 매뉴얼 페이지의 [repository] OPTIONS 섹션을 참조하십시오.

10.2. DNF 리포지토리 추가

새 리포지토리를 정의하려면 다음을 수행할 수 있습니다.

  • [repository] 섹션을 /etc/dnf/dnf.conf 파일에 추가합니다.
  • /etc/yum .repo s.d/ 디렉터리의 .repo 파일에 [repository] 섹션을 추가합니다.

    설치된 RPM 또는 소프트웨어 관리 도구(예: Subscription Manager)는 자체 .repo 파일을 제공할 수 있습니다.

참고

이 디렉토리에 .repo 파일 확장자가 있는 모든 파일을 dnf 에서 읽기 때문에 /etc/dnf/dnf.conf 대신 .repo 파일에 리포지토리를 정의합니다.

dnf config-manager 명령을 사용하여 DNF 리포지토리를 시스템에 추가하려면 다음 단계를 완료합니다.

절차

  • 시스템에 리포지토리를 추가합니다.

    # dnf config-manager --add-repo repository_URL

    repository_url 을 리포지토리를 가리키는 URL로 바꿉니다.

주의

Red Hat 인증서 기반CDN( Content Delivery Network ) 이외의 검증되지 않았거나 신뢰할 수 없는 소스에서 소프트웨어 패키지를 확보하고 설치하는 것은 잠재적인 보안 위험이며 보안, 안정성, 호환성 및 유지 관리 문제로 이어질 수 있습니다.

10.3. DNF 리포지토리 활성화

dnf config-manager 명령을 사용하여 DNF 리포지토리를 시스템에 추가하려면 다음 단계를 완료합니다.

절차

  • 리포지토리를 활성화합니다.

    # dnf config-manager --enable repositoryID

    repositoryID 를 고유한 리포지토리 ID로 바꿉니다.

추가 리소스

리포지토리 나열

10.4. DNF 리포지토리 비활성화

dnf config-manager 명령을 사용하여 시스템에 추가된 DNF 리포지토리를 비활성화하려면 다음 단계를 완료합니다.

절차

  • 리포지토리를 비활성화합니다.

    # dnf config-manager --disable repositoryID

    repositoryID 를 고유한 리포지토리 ID로 바꿉니다.

추가 리소스

리포지토리 나열

11장. 애플리케이션 스트림 콘텐츠 버전 관리

AppStream 리포지토리의 콘텐츠는 모듈 스트림에 해당하는 여러 버전에서 사용할 수 있습니다.

다음 섹션에서는 기존 활성화된 모듈 스트림을 변경할 때 수행해야 하는 작업을 설명합니다.

11.1. 모듈식 종속 항목 및 스트림 변경

일반적으로 콘텐츠를 제공하는 패키지는 추가 패키지에 따라 달라지며 일반적으로 원하는 종속성 버전을 지정합니다. 모듈에 포함된 패키지의 경우 이 메커니즘도 적용되지만 패키지와 특정 버전을 모듈 및 스트림으로 그룹화하면 추가 제약 조건이 발생합니다. 또한 모듈 스트림은 포함된 패키지와 관계없이 다른 모듈의 스트림에 대한 종속성을 선언할 수 있습니다.

패키지 또는 모듈이 있는 작업이 끝나면 설치된 모든 패키지의 전체 종속성 트리가 패키지가 선언하는 모든 조건을 충족해야 합니다. 또한 모든 모듈 스트림 종속성을 충족해야 합니다.

결과는 다음과 같습니다.

  • 모듈 스트림을 활성화하려면 추가 모듈 스트림을 활성화해야 할 수 있습니다.
  • 모듈 스트림 프로필을 설치하거나 스트림에서 패키지를 설치하려면 추가 모듈 스트림을 활성화하고 추가 패키지를 설치해야 할 수 있습니다.
  • 모듈 스트림을 비활성화하려면 다른 모듈 스트림을 비활성화해야 할 수 있습니다. 패키지가 자동으로 제거되지 않습니다.
  • 패키지를 제거하려면 추가 패키지를 제거해야 할 수 있습니다. 이러한 패키지가 모듈에서 제공되면 이러한 스트림의 패키지가 더 이상 설치되지 않은 경우에도 추가 설치를 위해 모듈 스트림은 활성화됩니다. 이는 사용되지 않은 DNF 저장소의 동작을 미러링합니다.

11.2. 모듈식 종속성 상호 작용

모듈식 종속성 은 일반 RPM 종속 항목 위에 있는 추가 계층입니다. 모듈식 종속성은 리포지토리 간 가상 종속 항목과 유사하게 작동합니다. 즉, RPM 종속 항목과 모듈식 종속 항목을 모두 확인해야 합니다.

변경하도록 명시적으로 지시하지 않는 한 시스템은 항상 모듈과 스트림 선택을 유지합니다. 모듈식 패키지는 이 패키지를 제공하는 모듈의 현재 활성화된 스트림에 포함된 업데이트를 수신하지만 다른 스트림에 포함된 버전으로 업그레이드하지는 않습니다.

11.3. 모듈 스트림 재설정

모듈 재설정은 모든 스트림을 초기 상태로 반환하는 작업입니다(활성화 또는 비활성화됨). 모듈에 기본 스트림이 구성된 경우 이 스트림은 모듈을 재설정하여 활성화됩니다.

dnf 모듈 reset 명령을 사용하여 모듈 스트림을 초기 상태로 재설정 하려면 다음 단계를 완료합니다.

절차

  • 모듈 상태를 재설정합니다.

    # dnf module reset module-name

    모듈이 초기 상태로 반환됩니다. 활성화된 스트림 및 설치된 프로필에 대한 정보는 삭제되지만 설치된 콘텐츠는 제거되지 않습니다.

11.4. 모듈의 모든 스트림 비활성화

기본 스트림이 있는 모듈에는 항상 하나의 스트림이 활성화됩니다. 모든 모듈 스트림의 콘텐츠에 액세스할 수 없는 경우 전체 모듈을 비활성화할 수 있습니다.

dnf 모듈 disable 명령을 사용하여 모듈의 모든 스트림을 비활성화하려면 다음 단계를 완료합니다.

사전 요구 사항

절차

  • 모듈을 비활성화합니다.

    # dnf module disable module-name

    dnf 명령은 확인을 요청한 다음 모든 스트림으로 모듈을 비활성화합니다. 모든 모듈 스트림은 비활성 상태가 됩니다. 설치된 콘텐츠가 제거되지 않습니다.

11.5. 이후 스트림으로 전환

이후 모듈 스트림으로 전환하면 해당 패키지가 모두 이후 버전으로 교체됩니다.

중요

데이터를 백업하고 구성 요소와 관련된 마이그레이션 지침을 따릅니다.

사전 요구 사항

  • 시스템이 완전히 업데이트되었습니다.

절차

  • 설치된 구성 요소를 새 버전으로 전환하고 모듈(component) 및 스트림(버전)을 선택합니다.

    # dnf module switch-to module:stream
  • 선택 사항: 설치된 구성 요소를 새 버전으로 전환하고 설치 또는 업데이트할 프로필도 선택합니다.

    # dnf module switch-to module:stream/profile

예 11.1. 모듈 스트림이 아닌 콘텐츠에서 모듈 스트림으로 전환

다음은 비모듈 PHP 8.0 에서 모듈식 PHP 8.1 로 전환하는 방법의 예입니다.

참고

이 예제의 출력은 간결성을 위해 편집되었습니다. 실제 출력에는 여기에 표시된 것보다 더 많은 정보가 포함될 수 있습니다.

  1. PHP 8.0 이 있는 php-common 패키지가 설치되었는지 확인합니다.

    $ rpm -q php-common
    php-common-8.0.27-1.el9_1.x86_64
  2. 변경 이외의 PHP 8.0 에서 모듈식 PHP 8.1 로 전환합니다.

    # dnf module switch-to php:8.1
    ...
    Dependencies resolved.
    ========================================================================================
     Package      Arch     Version                                   Repository        Size
    ========================================================================================
    Upgrading:
     php-common   x86_64   8.1.14-1.module+el9.2.0+17911+b059dfc2    rhel-AppStream   687 k
    Enabling module streams:
     php                   8.1
    
    Transaction Summary
    ========================================================================================
    Upgrade  1 Package
    
    Total download size: 687 k
    Is this ok [y/N]: y
    Downloading Packages:
    ...
    Upgraded:
      php-common-8.1.14-1.module+el9.2.0+17911+b059dfc2.x86_64
    
    Complete!
  3. php:8.1 모듈 스트림이 활성화되어 있는지 확인합니다.

    $ dnf module list php
    ...
    rhel-AppStream
    Name        Stream         Profiles                         Summary
    php         8.1 [e]        common [d], devel, minimal       PHP scripting language
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
  4. 설치된 php-common 패키지를 확인합니다.

    $ rpm -q php-common
    php-common-8.1.14-1.module+el9.2.0+17911+b059dfc2.x86_64

예 11.2. 이전 모듈 스트림에서 이후 모듈 스트림으로 전환

다음은 nodejs:18 모듈 스트림에서 nodejs:20 스트림으로 전환하는 방법의 예입니다.

참고

이 예제의 출력은 간결성을 위해 편집되었습니다. 실제 출력에는 여기에 표시된 것보다 더 많은 정보가 포함될 수 있습니다.

  1. nodejs:18 모듈 스트림이 설치되었는지 확인합니다.

    $ dnf module list nodejs
    ...
    rhel-AppStream
    Name       Stream     Profiles                                     Summary
    nodejs     18 [e]     common [d] [i], development, minimal, s2i    Javascript runtime
    nodejs     20         common [d], development, minimal, s2i        Javascript runtime
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
  2. 이후 nodejs:20 모듈 스트림으로 전환합니다.

    # dnf module switch-to nodejs:20
    ...
    Dependencies resolved.
    ========================================================================================
     Package          Arch   Version                                   Repository      Size
    ========================================================================================
    Upgrading:
     nodejs           x86_64 1:20.5.1-1.module+el9.3.0+19646+9a702805  rhel-AppStream  14 M
     nodejs-docs      noarch 1:20.5.1-1.module+el9.3.0+19646+9a702805  rhel-AppStream 8.0 M
     nodejs-full-i18n x86_64 1:20.5.1-1.module+el9.3.0+19646+9a702805  rhel-AppStream 8.5 M
     npm              x86_64 1:9.8.0-1.20.5.1.1.module+el9.3.0+19646+9a702805
                                                                       rhel-AppStream 2.6 M
    Switching module streams:
     nodejs                  18 -> 20
    
    Transaction Summary
    ========================================================================================
    Upgrade  4 Packages
    
    Total download size: 33 M
    Is this ok [y/N]: y
    Downloading Packages:
    ...
    Upgraded:
      nodejs-1:20.5.1-1.module+el9.3.0+19646+9a702805.x86_64
      nodejs-docs-1:20.5.1-1.module+el9.3.0+19646+9a702805.noarch
      nodejs-full-i18n-1:20.5.1-1.module+el9.3.0+19646+9a702805.x86_64
      npm-1:9.8.0-1.20.5.1.1.module+el9.3.0+19646+9a702805.x86_64
    
    Complete!
  3. nodejs:20 모듈 스트림이 활성화되어 있는지 확인합니다.

    $ dnf module list nodejs
    ...
    rhel-AppStream
    Name       Stream     Profiles                                     Summary
    nodejs     18         common [d], development, minimal, s2i        Javascript runtime
    nodejs     20 [e]     common [d] [i], development, minimal, s2i    Javascript runtime
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
  4. 설치된 nodejs 버전을 확인합니다.

    $ rpm -q nodejs
    nodejs-20.5.1-1.module+el9.3.0+19646+9a702805.x86_64

부록 A. dnf 명령 목록

다음 섹션에서는 Red Hat Enterprise Linux 9의 콘텐츠를 나열, 설치 및 제거하는 DNF 명령을 검토하십시오.

A.1. RHEL 9의 콘텐츠를 나열하는 명령

다음은 Red Hat Enterprise Linux 9에서 컨텐츠 및 세부 정보를 찾는 데 일반적으로 사용되는 DNF 명령입니다.

명령설명

DNF 검색어

패키지와 관련된 용어를 사용하여 패키지를 검색합니다.

DNF repoquery 패키지

활성화된 DNF 리포지토리에서 선택한 패키지 및 해당 버전을 검색합니다.

dnF 목록

설치되어 사용 가능한 모든 패키지에 대한 정보를 나열합니다.

DNF 목록 -- installed

DNF repoquery -- installed

시스템에 설치된 모든 패키지를 나열합니다.

dnf list --available

DNF repoquery

활성화된 모든 리포지토리에서 설치할 수 있는 모든 패키지를 나열합니다.

DNF 리포지터리

시스템에 활성화된 모든 리포지토리를 나열합니다.

DNF repolist --disabled

시스템에서 비활성화된 모든 리포지토리를 나열합니다.

DNF repolist --all

활성화 및 비활성화된 리포지토리를 모두 나열합니다.

DNF repoinfo

리포지토리에 대한 추가 정보를 나열합니다.

dnf info package-name

dnf repoquery --info package_name

사용 가능한 패키지에 대한 세부 정보를 표시합니다.

dnf repoquery --info --installed package_name

시스템에 설치된 패키지의 세부 정보를 표시합니다.

DNF 모듈 목록

모듈과 현재 상태를 나열합니다.

DNF 모듈 info module-name

모듈에 대한 세부 정보를 표시합니다.

dNF 모듈 목록 module-name

모듈의 현재 상태를 표시합니다.

DNF 모듈 info --profile module-name

선택한 모듈의 사용 가능한 프로필과 관련된 패키지를 표시합니다.

DNF 모듈 info --profile module-name:stream

지정된 스트림을 사용하여 모듈 사용 가능한 프로필과 관련된 패키지를 표시합니다.

DNF 모듈 제공

패키지를 제공하는 모듈, 스트림 및 프로필을 결정합니다.

모듈 외부에서 패키지를 사용할 수 있는 경우 이 명령의 출력이 비어 있습니다.

DNF 그룹 요약

설치 및 사용 가능한 그룹 수를 확인합니다.

DNF 그룹 목록

설치되어 사용 가능한 모든 그룹을 나열합니다.

DNF 그룹 정보 그룹 이름

특정 그룹에 포함된 필수 및 선택적 패키지를 나열합니다.

A.2. RHEL 9에서 콘텐츠를 설치하기 위한 명령

다음은 Red Hat Enterprise Linux 9에 컨텐츠를 설치하는 데 일반적으로 사용되는 DNF 명령입니다.

명령설명

dnf install package-name

패키지를 설치합니다.

패키지가 모듈 스트림에서 제공하는 경우 dnf 는 필수 모듈 스트림을 확인하고 이 패키지를 설치하는 동안 자동으로 활성화합니다. 이는 모든 패키지 종속 항목에 대해 재귀적으로 발생합니다. 더 많은 모듈 스트림이 요구 사항을 충족하는 경우 기본 모듈이 사용됩니다.

dnf install package-name-1 package-name-2

여러 패키지 및 종속 항목을 동시에 설치합니다.

dnf install package-name.arch

multilib 시스템(AMD64, Intel 64 시스템)에 패키지를 설치할 때 패키지 이름에 패키지를 추가하여 패키지 아키텍처를 지정합니다.

DNF에서 /usr/sbin/binary-file설치

바이너리의 경로를 인수로 사용하여 바이너리를 설치합니다.

DNF 설치 /path/

로컬 디렉터리에서 이전에 다운로드한 패키지를 설치합니다.

dnf install package-url

패키지 URL을 사용하여 원격 패키지를 설치합니다.

dNF 모듈 활성화 module-name:stream

특정 스트림을 사용하여 모듈을 활성화합니다.

이 명령을 실행하면 RPM 패키지가 설치되지 않습니다.

DNF module install module-name:stream

DNF 설치 @module-name:stream

특정 모듈 스트림에서 기본 프로필을 설치합니다.

이 명령을 실행하면 지정된 스트림도 활성화됩니다.

DNF module install module-name:stream/profile

DNF 설치 @module-name:stream/profile

특정 스트림을 사용하여 선택한 프로필을 설치합니다.

DNF 그룹 설치 그룹 이름

그룹 이름으로 패키지 그룹을 설치합니다.

DNF 그룹 설치 groupID

groupID로 패키지 그룹을 설치합니다.

A.3. RHEL 9에서 콘텐츠를 제거하는 명령

다음은 Red Hat Enterprise Linux 9에서 콘텐츠를 제거하는 데 일반적으로 사용되는 DNF 명령입니다.

명령설명

dnf remove package-name

특정 패키지와 모든 종속 패키지를 제거합니다.

dnf remove package-name-1 package-name-2

여러 패키지와 사용되지 않는 종속 항목을 동시에 제거합니다.

DNF group remove group-name

그룹 이름으로 패키지 그룹을 제거합니다.

DNF 그룹 삭제 groupID

groupID에 의해 패키지 그룹을 제거합니다.

DNF 모듈 제거 --all module-name:stream

지정된 스트림에서 모든 패키지를 제거합니다.

이 명령을 실행하면 시스템에서 중요한 패키지를 제거할 수 있습니다.

DNF module remove module-name:stream/profile

설치된 프로필에서 패키지를 제거합니다.

DNF 모듈 제거 module-name:stream

지정된 스트림 내에 설치된 모든 프로필에서 패키지를 제거합니다.

DNF 모듈 재설정 module-name

모듈을 초기 상태로 재설정합니다.

이 명령을 실행하면 지정된 모듈에서 패키지를 제거하지 않습니다.

dNF 모듈 비활성화 module-name

모듈 및 모든 스트림을 비활성화합니다.

이 명령을 실행하면 지정된 모듈에서 패키지를 제거하지 않습니다.

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.