Red Hat Training

A Red Hat training course is available for RHEL 8

RHEL 8 도입 고려 사항

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 7과 Red Hat Enterprise Linux 8의 주요 차이점

Red Hat Customer Content Services

초록

이 문서에서는 Red Hat Enterprise Linux 7 이후 Red Hat Enterprise Linux 8의 변경 사항에 대한 개요를 제공하여 Red Hat Enterprise Linux 8로 업그레이드할 수 있도록 지원합니다.

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

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의 두 가지 주요 버전의 차이점에 대해 설명합니다. RHEL 7 및 RHEL 8. 이는 모든 변경 사항의 전체 목록이 아닌 RHEL 8로의 업그레이드를 평가하는 데 관련된 변경 사항 목록을 제공합니다.

RHEL 8의 기능 및 제한 사항은 지식베이스 문서 Red Hat Enterprise Linux 기술 기능 및 제한 에서 확인할 수 있습니다.

RHEL 라이프 사이클에 대한 정보는 Red Hat Enterprise Linux 라이프 사이클 문서에서 제공됩니다.

RHEL 8의 패키지 목록은 패키지 매니페스트에서 참조하십시오.

RHEL 8 사용에 대한 자세한 내용은 RHEL 8 제품 설명서 를 참조하십시오.

RHEL 7에서 RHEL 8로의 인플레이스 업그레이드에 대한 지침은 RHEL 7에서 RHEL 8으로 업그레이드를 참조하십시오.

RHEL 6과 RHEL 7의 주요 차이점에 대한 자세한 내용은 RHEL 7 마이그레이션 플래닝 가이드 를 참조하십시오.

2장. 아키텍처

Red Hat Enterprise Linux 8은 다음 아키텍처에 대한 지원을 제공하는 커널 버전 4.18과 함께 배포됩니다.

  • AMD 및 Intel 64비트 아키텍처
  • 64비트 ARM 아키텍처
  • IBM Power Systems, little endian
  • 64비트 IBM Z

각 아키텍처에 적절한 서브스크립션을 구매해야 합니다. 자세한 내용은 Red Hat Enterprise Linux 시작하기 - 추가 아키텍처 를 참조하십시오. 사용 가능한 서브스크립션 목록은 고객 포털에서 서브스크립션 사용률 을 참조하십시오.

모든 아키텍처는 RHEL 8의 표준 커널 패키지에 의해 지원됩니다. kernel-alt 패키지가 필요하지 않습니다.

3장. 리포지토리

Red Hat Enterprise Linux 8은 다음 두 가지 주요 리포지토리를 통해 배포됩니다.

  • BaseOS
  • AppStream

두 리포지토리 모두 기본 RHEL 설치에 필요하며 모든 RHEL 서브스크립션을 통해 사용할 수 있습니다.

BaseOS 리포지토리의 콘텐츠는 모든 설치의 기반이 되는 기본 OS 기능의 코어 세트를 제공하는 데 사용됩니다. 이 콘텐츠는 RPM 형식으로 사용 가능하며 이전 RHEL 릴리스와 비슷한 지원 조건이 적용됩니다. BaseOS를 통해 배포되는 패키지 목록은 패키지 매니페스트를 참조하십시오.

Application Stream 리포지토리의 콘텐츠에는 다양한 워크로드와 사용 사례를 지원하는 추가 사용자 공간 애플리케이션, 런타임 언어 및 데이터베이스가 포함되어 있습니다. Application Streams는 친숙한 RPM 형식, 모듈 이라는 RPM 형식의 확장 또는 Software Collections로 사용할 수 있습니다. AppStream에서 사용 가능한 패키지 목록은 패키지 매니페스트를 참조하십시오.

또한 CodeReady Linux Builder 리포지토리는 모든 RHEL 서브스크립션을 통해 사용할 수 있습니다. 이는 개발자가 사용할 수 있는 추가 패키지를 제공합니다. CodeReady Linux Builder 리포지토리에 포함된 패키지는 지원되지 않습니다.

RHEL 8 리포지토리에 관한 자세한 내용은 패키지 매니페스트를 참조하십시오.

4장. 애플리케이션 스트림

Red Hat Enterprise Linux 8에는 Application Streams의 개념이 도입되어 있습니다. 이제 여러 버전의 사용자 공간 구성 요소가 핵심 운영 체제 패키지보다 더 자주 제공되고 업데이트됩니다. 이는 플랫폼 또는 특정 배포의 기본 안정성에 영향을 주지 않고 Red Hat Enterprise Linux를 사용자 지정할 수 있는 유연성을 향상시킵니다.

Application Stream으로 사용 가능한 구성 요소는 모듈 또는 RPM 패키지로 패키징할 수 있으며 RHEL 8의 AppStream 리포지토리를 통해 제공합니다. 각 Application Stream 구성 요소에는 RHEL 8과 같거나 짧은 라이프 사이클이 있습니다. 자세한 내용은 Red Hat Enterprise Linux 라이프사이클을 참조하십시오.

모듈은 논리 단위, 애플리케이션, 언어 스택, 데이터베이스 또는 툴 세트를 나타내는 패키지 컬렉션입니다. 이러한 패키지는 함께 빌드, 테스트, 릴리스됩니다.

모듈 스트림은 Application Stream 구성 요소의 버전을 나타냅니다. 예를 들어 PostgreSQL 데이터베이스 서버의 여러 스트림(버전)은 postgresql 모듈에서 기본 postgresql:10 스트림을 사용할 수 있습니다. 시스템에는 하나의 모듈 스트림만 설치할 수 있습니다. 개별 컨테이너에서 서로 다른 버전을 사용할 수 있습니다.

자세한 모듈 명령은 사용자 공간 구성 요소 설치, 관리 및 제거 문서에 설명되어 있습니다. AppStream에서 사용 가능한 모듈 목록은 패키지 매니페스트를 참조하십시오.

5장. 설치 프로그램 및 이미지 생성

5.1. 애드온

5.1.1. OSCAP

RHEL 8에서는 OSCAP(Open Security Content Automation Protocol) 애드온이 기본적으로 활성화되어 있습니다.

5.1.2. Kdump

Kdump 애드온에서는 설치 중에 커널 크래시 덤프 구성을 지원합니다. 이 애드온은 Kickstart에서 완전 지원( %addon com_redhat_kdump 명령 및 해당 옵션 사용)을 지원하며 그래픽 및 텍스트 기반 사용자 인터페이스에서 추가 윈도우로 완전히 통합됩니다.

5.2. 설치 프로그램 네트워킹

사용자 정의 접두사를 기반으로 네트워크 인터페이스 이름을 생성하는 새로운 네트워크 장치 이름 지정 스키마를 Red Hat Enterprise Linux 8에서 사용할 수 있습니다. net.ifnames.prefix 부팅 옵션을 사용하면 설치 프로그램 및 설치된 시스템에서 장치 이름 지정 스키마를 사용할 수 있습니다.

5.3. 설치 이미지 및 패키지

5.3.1. 시스템을 등록하고 RHEL 서브스크립션을 첨부하며 Red Hat CDN에서 설치할 수 있습니다.

Red Hat Enterprise Linux 8.2부터 패키지 설치 전에 시스템을 등록하고 RHEL 서브스크립션을 첨부하고 Red Hat CDN(Content Delivery Network)에서 설치할 수 있습니다. 대화형 GUI 설치 및 자동화된 Kickstart 설치에서는 이 기능을 지원합니다. 자세한 내용은 RHEL 8.2 릴리스 노트 문서를 참조하십시오.

5.3.2. 설치 중에 Red Hat Insights에 시스템 등록 기능

Red Hat Insights 는 플랫폼 및 애플리케이션 데이터를 수집하고 분석하여 위험을 예측하고 조치를 권장하며 비용을 추적하는 관리형 서비스입니다. Insights 경고: 시스템 가용성(위험 중단 포함), 보안(예: 시스템에 대해 새로운 CVE 검색) 및 비즈니스(예: 과잉)와 관련된 여러 운영 영역과 관련된 경고 또는 최적화에 대해 설명합니다. Insights는 Red Hat 서브스크립션의 일부로 포함되어 있으며 Red Hat Hybrid Cloud Console을 통해 액세스할 수 있습니다. Red Hat Insights 설명서 도 참조하십시오.

Red Hat Enterprise Linux 8.2부터 설치 중에 시스템을 Red Hat Insights에 등록할 수 있습니다. 대화형 GUI 설치 및 자동화된 Kickstart 설치에서는 이 기능을 지원합니다. 자세한 내용은 RHEL 8.2 릴리스 노트 문서를 참조하십시오.

5.3.3. 통합 ISO

Red Hat Enterprise Linux 8에서 통합 ISO는 BaseOSAppStream 설치 소스 리포지토리를 자동으로 로드합니다. 이 기능은 설치 중에 로드되는 첫 번째 기본 리포지토리에서 작동합니다. 예를 들어 리포지토리가 구성되지 않은 상태에서 설치를 부팅하고 그래픽 사용자 인터페이스(GPU)에 통합 ISO를 기본 리포지토리로 사용하거나 통합 ISO를 가리키는 inst.repo= 옵션을 사용하여 설치를 부팅하는 경우.

결과적으로 AppStream 리포지토리는 설치 소스 GUI 창의 추가 리포지토리 섹션에서 사용됩니다. AppStream 리포지토리를 제거하거나 해당 설정을 변경할 수 없지만, 설치 소스에서 이를 사용하지 않게 설정 해제할 수 있습니다. 이 기능은 다른 기본 리포지토리를 사용하여 설치를 시작한 다음 통합 ISO로 변경하면 작동하지 않습니다. 이렇게 하면 기본 리포지토리가 교체됩니다. 그러나 AppStream 리포지토리는 교체되지 않고 원본 파일을 가리킵니다.

5.3.4. Stage2 이미지

Red Hat Enterprise Linux 8에서는 설치에 실패하지 않도록 stage2 또는 Kickstart 파일의 여러 네트워크 위치를 지정할 수 있습니다. 이번 업데이트에서는 stage2 및 Kickstart 파일의 네트워크 위치와 함께 여러 inst.stage2inst.ks 부팅 옵션을 지정할 수 있습니다. 이렇게 하면 요청된 파일에 도달할 수 없는 상황이 발생하지 않으며 stage2 또는 Kickstart 파일이 있는 연결된 서버에 액세스할 수 없기 때문에 설치에 실패합니다.

이번 새 업데이트를 통해 여러 위치를 지정하면 설치 실패를 방지할 수 있습니다. 정의된 모든 위치가 URL, 즉 HTTP,HTTPS 또는 FTP 인 경우 요청된 파일을 성공적으로 가져올 때까지 순차적으로 시도됩니다. URL이 아닌 위치가 있는 경우 마지막으로 지정된 위치만 시도합니다. 나머지 위치는 무시됩니다.

5.3.5. inst.addrepo 매개변수

이전에는 커널 부트 매개변수의 기본 리포지토리만 지정할 수 있습니다. Red Hat Enterprise Linux 8에서 새로운 커널 매개변수인 inst.addrepo=<name>,<url> 을 사용하면 설치 중에 추가 리포지토리를 지정할 수 있습니다. 이 매개변수에는 두 가지 필수 값(즉, 리포지토리의 이름과 리포지토리를 가리키는 URL)이 있습니다. 자세한 내용은 inst-addrepo 사용법 에서 참조하십시오.

5.3.6. 확장된 ISO에서 설치

Red Hat Enterprise Linux 8은 로컬 하드 드라이브의 리포지토리에서 설치를 지원합니다. 이전에는 하드 드라이브의 유일한 설치 방법에서 ISO 이미지를 설치 소스로 사용했습니다. 그러나 Red Hat Enterprise Linux 8 ISO 이미지는 일부 파일 시스템에서 너무 클 수 있습니다. 예를 들어 FAT32 파일 시스템은 4GiB보다 큰 파일을 저장할 수 없습니다. Red Hat Enterprise Linux 8에서는 로컬 하드 드라이브의 리포지토리에서 설치할 수 있습니다. ISO 이미지 대신 디렉터리를 지정해야 합니다. 예: inst.repo=hd:<device>:<path to the repository>.

Red Hat Enterprise Linux 8 BaseOS 및 AppStream 리포지토리에 대한 자세한 내용은 이 문서의 리포지토리 섹션을 참조하십시오.

5.4. 설치 프로그램 그래픽 사용자 인터페이스

5.4.1. 설치 요약 창

Red Hat Enterprise Linux 8 그래픽 설치의 설치 요약 창이 그래픽 설치 설정의 향상된 조직을 제공하는 새로운 3열 레이아웃으로 업데이트되었습니다.

5.5. RHEL의 새로운 시스템 용도

5.5.1. 그래픽 설치의 시스템 용도 지원

이전에는 Red Hat Enterprise Linux 설치 프로그램에서 서브스크립션 관리자에게 시스템 용도 정보를 제공하지 않았습니다. Red Hat Enterprise Linux 8에서는 System Purpose 창을 사용하거나 syspurpose 명령을 사용하여 Kickstart 구성 파일에서 그래픽 설치 중에 시스템의 용도를 설정할 수 있습니다. 시스템 용도를 설정하면 인타이틀먼트 서버는 시스템의 의도된 사용을 충족하는 서브스크립션을 자동으로 연결하는 데 도움이 되는 정보를 수신합니다.

5.5.2. Pykickstart에서 시스템 용도 지원

이전에는 pykickstart 라이브러리에서 서브스크립션 관리자에게 시스템 용도 정보를 제공할 수 없었습니다. Red Hat Enterprise Linux 8에서 pykickstart 는 새로운 syspurpose 명령을 구문 분석하고, 자동화되고 부분적으로 자동화된 설치 중에 시스템의 용도를 기록합니다. 그러면 정보가 설치 프로그램에 전달되고 새로 설치된 시스템에 저장되고 시스템 등록 시 서브스크립션 관리자가 사용할 수 있습니다.

5.6. 설치 프로그램 모듈 지원

5.6.1. Kickstart를 사용하여 모듈 설치

Red Hat Enterprise Linux 8에서는 모든 모듈식 기능을 처리하도록 설치 프로그램이 확장되었습니다. Kickstart 스크립트는 모듈 및 스트림 조합을 활성화하고 모듈 프로필을 설치하고 모듈식 패키지를 설치할 수 있습니다.

5.7. Kickstart 변경

다음 섹션에서는 Red Hat Enterprise Linux 8의 Kickstart 명령 및 옵션 변경 사항에 대해 설명합니다.

RHEL 8에서 auth 또는 authconfig가 더 이상 사용되지 않음

authconfig 도구 및 패키지가 제거되었으므로 Red Hat Enterprise Linux 8에서 auth 또는 authconfig Kickstart 명령은 더 이상 사용되지 않습니다.

명령줄에서 발행된 authconfig 명령과 마찬가지로 Kickstart 스크립트의 authconfig 명령은 이제 authselect-compat 도구를 사용하여 새 authselect 도구를 실행합니다. 이 호환성 계층 및 알려진 문제에 대한 설명은 수동 페이지 authselect-migration(7) 을 참조하십시오. 설치 프로그램은 더 이상 사용되지 않는 명령의 사용을 자동으로 감지하고 호환성 계층을 제공하기 위해 authselect-compat 패키지를 시스템에 설치합니다.

Kickstart는 더 이상 vGPU를 지원하지 않습니다.

Red Hat Enterprise Linux 8에서는 RuntimeClass 파일 시스템이 지원되지 않습니다. 그 결과 Graphical User Interface(GPU)와 Kickstart 명령이 더 이상 vGPU를 지원하지 않습니다.

이전 RHEL 릴리스의 Kickstart 파일 사용

이전 RHEL 릴리스의 Kickstart 파일을 사용하는 경우 Red Hat Enterprise Linux 8 BaseOS 및 AppStream 리포지토리에 대한 자세한 내용은 RHEL 8 문서 채택 시 고려 사항 섹션을 참조하십시오.

5.7.1. 더 이상 사용되지 않는 Kickstart 명령 및 옵션

Red Hat Enterprise Linux 8에서는 다음 Kickstart 명령 및 옵션이 더 이상 사용되지 않습니다.

특정 옵션만 나열된 경우에도 기본 명령 및 기타 옵션은 계속 사용할 수 있으며 더 이상 사용되지 않습니다.

  • auth 또는 authconfig - 대신 authselect 사용
  • 장치
  • deviceprobe
  • dmraid
  • install - 하위 명령 또는 방법으로 명령으로 직접 사용
  • multipath
  • bootloader --upgrade
  • ignoredisk --interactive
  • 파티션 --active
  • reboot --kexec
  • syspurpose - subscription-manager syspurpose 를 사용하십시오.

auth 또는 authconfig 명령을 제외하고 Kickstart 파일에서 명령을 사용하면 로그에 경고가 출력됩니다.

auth 또는 authconfig 명령을 제외하고 inst.ksstrict 부팅 옵션을 사용하여 더 이상 사용되지 않는 명령 경고를 오류로 설정할 수 있습니다.

5.7.2. 제거된 Kickstart 명령 및 옵션

다음 Kickstart 명령 및 옵션이 Red Hat Enterprise Linux 8에서 완전히 제거되었습니다. Kickstart 파일에서 사용하면 오류가 발생합니다.

  • 장치
  • deviceprobe
  • dmraid
  • install - 하위 명령 또는 방법으로 명령으로 직접 사용
  • multipath
  • bootloader --upgrade
  • ignoredisk --interactive
  • 파티션 --active
  • harddrive --biospart
  • 업그레이드 (이 명령은 이미 더 이상 사용되지 않음)
  • btrfs
  • part/partition btrfs
  • part --fstype btrfs 또는 파티션 --fstype btrfs
  • logvol --fstype btrfs
  • RAID --fstype btrfs
  • unsupported_hardware

특정 옵션과 값만 나열된 경우 기본 명령 및 기타 옵션을 계속 사용할 수 있으며 제거되지 않습니다.

5.8. 이미지 생성

5.8.1. 이미지 빌더를 사용하여 사용자 정의 시스템 이미지 생성

이미지 빌더 툴을 사용하면 사용자 지정 RHEL 이미지를 생성할 수 있습니다. Red Hat Enterprise Linux 8.3부터 Image Builder는 시스템 서비스 osbuild-composer 패키지로 실행됩니다.

이미지 빌더를 사용하면 추가 패키지가 포함된 사용자 지정 시스템 이미지를 만들 수 있습니다. 이미지 빌더 기능은 다음을 통해 액세스할 수 있습니다.

  • 웹 콘솔의 그래픽 사용자 인터페이스
  • composer-cli 툴의 명령행 인터페이스.

이미지 빌더 출력 형식에는 다음이 포함됩니다.

  • TAR 아카이브
  • 가상 머신 또는 OpenStack과 직접 사용하기 위한 qcow2 파일
  • QEMU QCOW2 Image
  • Azure, VMWare 및 AWS의 클라우드 이미지

이미지 빌더에 대한 자세한 내용은 사용자 지정 RHEL 시스템 이미지 편집 문서를 참조하십시오.

6장. 소프트웨어 관리

6.1. YUM 스택에 대한 주요 변경 사항

6.1.1. YUM/DNF를 통한 패키지 관리

Red Hat Enterprise Linux 8에서 소프트웨어를 설치하는 것은 DNF 기술( YUM v4)을 기반으로 하는 YUM 툴을 통해 보장됩니다. RHEL의 이전 주요 버전과의 일관성을 위해 yum 용어를 의도적으로 사용합니다. 그러나 yum 대신 dnf 를 입력하면 호환성을 위해 dnf 의 별칭이므로 명령이 예상대로 작동합니다.

자세한 내용은 사용자 공간 구성 요소 설치, 관리 및 제거를 참조하십시오.

6.1.2. YUM v3을 통한 YUM v4의 이점

YUM v4 는 RHEL 7에서 사용된 이전의 YUM v3 보다 다음과 같은 이점이 있습니다.

  • 성능 향상
  • 모듈식 콘텐츠 지원
  • 툴링과의 통합을 위해 적절하게 설계된 안정된 API

새로운 YUM v4 툴과 RHEL 7의 이전 버전 YUM v3 의 차이점에 대한 자세한 내용은 YUM에 비해 DNF CLI의 변경사항을 참조하십시오.

6.1.3. YUM v4 사용 방법

소프트웨어 설치

YUM v4 는 명령줄에서 를 사용하거나 구성 파일을 편집 또는 생성할 때 YUM v3 과 호환됩니다.

소프트웨어 설치 시, RHEL 7에서와 동일한 방식으로 yum 명령과 특정 옵션을 사용할 수 있습니다.

소프트웨어 패키지 설치에 대한 자세한 정보를 참조하십시오.

플러그인의 가용성

기존 YUM v3 플러그인은 새로운 YUM v4 버전과 호환되지 않습니다. 선택한 yum 플러그인 및 유틸리티는 새 DNF 백엔드로 이식되었으며 RHEL 7에서와 동일한 이름으로 설치할 수 있습니다. 또한 호환성 심볼릭 링크를 제공하므로 바이너리, 구성 파일 및 디렉터리는 일반적인 위치에서 찾을 수 있습니다.

플러그인이 더 이상 포함되지 않거나 교체가 사용 편의성을 충족하지 않는 경우 Red Hat 지원팀에 문의하여 기능 강화를 요청하여 고객 포털에서 지원 케이스를 열고 관리합니까?

자세한 내용은 플러그인 인터페이스를 참조하십시오.

API 가용성

YUM v3 에서 제공하는 레거시 Python API는 더 이상 사용할 수 없습니다. 사용자는 플러그인 및 스크립트를 안정적이고 완전하게 지원되는 YUM v4 (DNF Python API)에서 제공하는 새 API로 마이그레이션하는 것이 좋습니다. 업스트림 프로젝트는 새로운 DNF Python API를 문서화합니다. DNF API 참조를 참조하십시오.

Libdnf 및 Hawkey API (C 및 Python 모두)는 불안정한 것으로 간주되며 RHEL 8 라이프 사이클 동안 변경될 수 있습니다.

6.1.4. YUM 구성 파일 옵션 가용성

/etc/yum.conf/etc/yum.repos.d/*.repo 파일의 경우 RHEL 7과 RHEL 8 간의 구성 파일 옵션 변경 사항은 다음 요약에 설명되어 있습니다.

표 6.1. /etc/yum.conf 파일의 설정 파일 옵션 변경

RHEL 7 옵션RHEL 8 상태

alwaysprompt

Removed

assumeno

available

assumeyes

available

autocheck_running_kernel

available

자동 저장 세트

Removed

bandwidth

available

bugtracker_url

available

cachedir

available

check_config_file_age

available

clean_requirements_on_remove

available

색상

available

color_list_available_downgrade

available

color_list_available_install

available

color_list_available_reinstall

available

color_list_available_running_kernel

Removed

color_list_available_upgrade

available

color_list_installed_extra

available

color_list_installed_newer

available

color_list_installed_older

available

color_list_installed_reinstall

available

color_list_installed_running_kernel

Removed

color_search_match

available

color_update_installed

available

color_update_local

available

color_update_remote

available

명령

Removed

config_file_path

available

debuglevel

available

deltarpm

available

deltarpm_metadata_percentage

Removed

deltarpm_percentage

available

depsolve_loop_limit

Removed

disable_excludes

available

diskspacecheck

available

distroverpkg

Removed

enable_group_conditionals

Removed

ErrorLevel

available

exactarchlist

Removed

exclude

available

exit_on_lock

available

fssnap_abort_on_errors

Removed

fssnap_automatic_keep

Removed

fssnap_automatic_post

Removed

fssnap_automatic_pre

Removed

fssnap_devices

Removed

fssnap_percentage

Removed

ftp_disable_epsv

Removed

gpgcheck

available

group_command

Removed

group_package_types

available

groupremove_leaf_only

Removed

history_list_view

available

history_record

available

history_record_packages

available

http_caching

Removed

include

Removed

installonly_limit

available

installonlypkgs

available

installrootkeep

Removed

ip_resolve

available

keepalive

Removed

keepcache

available

kernelpkgnames

Removed

loadts_ignoremissing

Removed

loadts_ignorenewrpm

Removed

loadts_ignorerpm

Removed

localpkg_gpgcheck

available

logfile

Removed

max_connections

Removed

mddownloadpolicy

Removed

mdpolicy

Removed

metadata_expire

available

metadata_expire_filter

Removed

minrate

available

mirrorlist_expire

Removed

multilib_policy

available

사용되지 않음

available

override_install_langs

Removed

overwrite_groups

Removed

암호

available

payload_gpgcheck

Removed

persistdir

available

pluginconfpath

available

pluginpath

available

plugins

available

protected_multilib

Removed

protected_packages

available

proxy

available

proxy_password

available

proxy_username

available

query_install_excludes

Removed

recent

available

recheck_installed_requires

Removed

remove_leaf_only

Removed

repo_gpgcheck

available

repopkgsremove_leaf_only

Removed

reposdir

available

reset_nice

available

retries

available

rpmverbosity

available

shell_exit_status

Removed

showdupesfromrepos

available

skip_broken

available

skip_missing_names_on_install

Removed

skip_missing_names_on_update

Removed

ssl_check_cert_permissions

Removed

sslcacert

available

sslclientcert

available

sslclientkey

available

sslverify

available

syslog_device

Removed

syslog_facility

Removed

syslog_ident

Removed

throttle

available

timeout

available

내결함성

Removed

tsflags

available

ui_repoid_vars

Removed

upgrade_group_objects_upgrade

available

upgrade_requirements_on_install

Removed

usercache

Removed

사용자 이름

available

usr_w_check

Removed

표 6.2. /etc/yum.repos.d/*.repo 파일의 설정 파일 옵션 변경

RHEL 7 옵션RHEL 8 상태

async

Removed

bandwidth

available

baseurl

available

compare_providers_priority

Removed

Cost

available

deltarpm_metadata_percentage

Removed

deltarpm_percentage

available

enabled

available

그룹 활성화

available

exclude

available

failovermethod

Removed

ftp_disable_epsv

Removed

gpgcakey

Removed

gpgcheck

available

gpgkey

available

http_caching

Removed

includepkgs

available

ip_resolve

available

keepalive

Removed

metadata_expire

available

metadata_expire_filter

Removed

Metalink

available

mirrorlist

available

mirrorlist_expire

Removed

name

available

암호

available

proxy

available

proxy_password

available

proxy_username

available

repo_gpgcheck

available

repositoryid

Removed

retries

available

skip_if_unavailable

available

ssl_check_cert_permissions

Removed

sslcacert

available

sslclientcert

available

sslclientkey

available

sslverify

available

throttle

available

timeout

available

ui_repoid_vars

Removed

사용자 이름

available

6.1.5. YUM v4 기능이 다르게 동작

YUM v3 기능 중 일부는 YUM v4 에서 다르게 작동할 수 있습니다. 이러한 변경 때문에 워크플로에 부정적인 영향을 미치는 경우 How do I open and manage a support case on the Customer Portal?에 설명된 대로 Red Hat 지원 케이스를 작성하십시오.

6.1.5.1. yum list presents 중복 항목

yum list 명령을 사용하여 패키지를 나열할 때 동일한 이름과 버전의 패키지가 있는 각 리포지토리에 대해 중복 항목이 표시될 수 있습니다.

이는 의도적이므로 사용자는 필요에 따라 이러한 패키지를 구분할 수 있습니다.

예를 들어 repo1 및 repo2에서 package-1.2를 사용할 수 있는 경우 YUM v4 는 두 인스턴스를 모두 출력합니다.

[…​]
package-1.2    repo1
package-1.2    repo2
[…​]

반면, 기존의 YUM v3 명령은 하나의 인스턴스만 표시하도록 이러한 중복을 필터링했습니다.

[…​]
package-1.2    repo1
[…​]

6.1.6. 트랜잭션 기록 로그 파일의 변경 내용Changes in the transaction history log files

RHEL 7과 RHEL 8 간의 트랜잭션 기록 로그 파일의 변경 사항은 다음 요약에 설명되어 있습니다.

RHEL 7에서 /var/log/yum.log 파일은 다음을 저장합니다.

  • 소프트웨어 패키지의 설치, 업데이트 및 제거 레지스트리
  • yum 및 PackageKit의 트랜잭션

RHEL 8에서는 /var/log/yum.log 파일과 직접적으로 일치하지 않습니다. PackageKitmicrodnf 를 포함한 트랜잭션 정보를 표시하려면 yum history 명령을 사용합니다.

또는 /var/log/dnf.rpm.log 파일을 검색할 수 있지만 이 로그 파일에는 PackageKit 및 microdnf의 트랜잭션이 포함되지 않으며 저장된 정보를 정기적으로 제거하는 로그 회전이 있습니다.

6.1.7. deltarpm 기능은 더 이상 지원되지 않습니다.

RHEL 8에서는 더 이상 delta rpm 사용을 지원하지 않습니다. delta rpms 를 사용하려면 사용자가 더 이상 사용할 수 없는 deltarpm 패키지를 설치해야 합니다. deltarpm 대체 drpm 은 동일한 기능을 제공하지 않습니다. 따라서 RHEL 8 콘텐츠는 deltarpm 형식으로 제공되지 않습니다. 이 기능은 향후 RHEL 릴리스에서 완전히 제거될 예정입니다.

6.2. 주요 RPM 기능 및 변경 사항

RHEL(Red Hat Enterprise Linux) 8은 RPM 4.14와 함께 배포됩니다. 이 버전에서는 RHEL 7에서 사용할 수 있는 RPM 4.11에 대한 여러 개선사항을 소개합니다.

주요 기능은 다음과 같습니다.

  • debuginfo 패키지를 병렬로 설치할 수 있습니다.
  • 약한 종속성 지원
  • 풍부한 부울 종속성 지원
  • 4GB 이상의 파일 패키지 지원
  • 파일 트리거 지원
  • new --nopretrans--noposttrans 스위치를 각각 %pretrans%posttrans 스크립트lets의 실행을 비활성화합니다.
  • 모든 RPM 플러그인의 로드 및 실행을 비활성화하기 위해 새로운 --noplugins 스위치.
  • 시스템 로깅 프로토콜(syslog)을 통해 RPM 활동을 로깅하는 새로운 syslog 플러그인입니다.
  • rpmbuild 명령은 이제 소스 패키지의 모든 빌드 단계를 직접 수행할 수 있습니다.

    rpmbuild-r[abpcils] 옵션과 함께 사용하면 됩니다.

  • 다시 설치 모드를 지원합니다.

    이는 새로운 --reinstall 옵션을 통해 확인됩니다. 이전에 설치한 패키지를 다시 설치하려면 아래 구문을 사용하십시오.

    rpm {--reinstall} [install-options] PACKAGE_FILE

    이 옵션을 사용하면 새 패키지를 올바르게 설치하고 이전 패키지를 제거합니다.

  • SSD 보존 모드를 지원합니다.

    이는 /usr/lib/rpm/macros 파일에서 사용할 수 있는 새로운 %_minimize_writes 매크로에 의해 보장됩니다. 매크로는 기본적으로 0으로 설정됩니다. SSD 디스크에 쓰기를 최소화하려면 %_minimize_writes 를 1로 설정합니다.

  • rpm 페이로드를 tar 아카이브로 변환하는 새로운 rpm2archive 유틸리티

RHEL 8의 새로운 RPM 기능에 대한 자세한 내용을 참조하십시오.

주요 변경 사항은 다음과 같습니다.

  • 정확한 사양 구문 분석기
  • 상세하지 않은 모드에서 출력을 확인하는 간소화된 서명
  • 재현 가능한 빌드 (동일한 패키지를 생성하는 빌드)에 대한 지원이 개선되었습니다.

    • 빌드 시간 설정
    • 파일 mtime 설정 (파일 수정 시간)
    • buildhost 설정
  • 이제 -p 옵션을 사용하여 제거된 PACKAGE_FILE을 쿼리하는 것은 선택 사항입니다. 이 사용 사례에서 rpm 명령은 이제 -p 옵션을 사용하거나 사용하지 않고 동일한 결과를 반환합니다. p 옵션이 필요한 유일한 사용 사례는 파일 이름이 rpmdb 데이터베이스의 Provides 가 없는지 확인하는 것입니다.
  • 매크로 추가 및 사용 중단

    • %makeinstall 매크로가 더 이상 사용되지 않습니다. 프로그램을 설치하려면 대신 %make_install 매크로를 사용하십시오.
  • rpmbuild --sign 명령이 더 이상 사용되지 않습니다.

    rpmbuild 명령과 함께 --sign 옵션을 사용하는 것은 더 이상 사용되지 않습니다. 기존 패키지에 서명을 추가하려면 rpm --addsign 을 대신 사용합니다.

7장. 인프라 서비스

7.1. 시간 동기화

정확한 유지 관리는 여러 가지 이유로 중요합니다. Linux 시스템에서 NTP(Network Time Protocol) 프로토콜은 사용자 공간으로 실행되는 데몬에 의해 구현됩니다.

7.1.1. NTP 구현

RHEL 7에서는 NTP 프로토콜의 두 가지 구현(ntp 및 chrony )을 지원했습니다.

RHEL 8에서는 NTP 프로토콜은 chrony 패키지에서 제공하는 chronyd 데몬에서만 구현됩니다.

ntp 데몬은 더 이상 사용할 수 없습니다. RHEL 7 시스템에서 ntp 를 사용한 경우 chrony로 마이그레이션 해야 할 수 있습니다.

chrony에서 지원하지 않는 이전 ntp 기능을 가능한 교체 방법은 chronyntp에서 이전에 지원하는 일부 설정 달성에 설명되어 있습니다.

7.1.2. chrony 제품군 소개

Chrony는 간헐적인 네트워크 연결, 크게 제한된 네트워크, 온도 변경(또는 기존 컴퓨터 클럭이 온도에 민감하지 않음) 및 가상 머신에서 실행되지 않는 시스템을 포함한 다양한 조건에서 제대로 작동하는 NTP 구현입니다.

chrony 를 사용할 수 있습니다:

  • 시스템 클럭을 NTP 서버와 동기화하려면
  • 시스템 클럭을 참조 클럭과 동기화하기 위해, 예를 들면 GPS 수신기
  • 시스템 클럭을 수동 시간 입력과 동기화하려면
  • NTPv4(RFC 5905) 서버 또는 피어로서 네트워크의 다른 컴퓨터에 시간 서비스를 제공합니다.

chrony 에 대한 자세한 내용은 기본 시스템 설정 구성을 참조하십시오.

7.1.2.1. chrony와 ntp의 차이점

chronyntp 의 차이점에 대한 자세한 내용은 다음 리소스를 참조하십시오.

7.1.2.1.1. Chrony는 기본적으로 두 번째 수정 사항 적용

RHEL 8의 기본 chrony 구성 파일 /etc/chrony.conf.com에는 consequesectz 지시문이 포함되어 있습니다.

SriovIB Networksectz 지시문을 사용하면 chronyd 가 다음을 수행할 수 있습니다.

  • 시스템 tz 데이터베이스 (tzdatatz )에서 outline 초에 대한 정보를 가져옵니다.
  • 시스템이 정확한 국제 Atomic Time (TAI) 시계 (CLOCK_TAI)를 제공하는 시스템 시계의 TAI-UTC 오프셋을 설정합니다.

지시문은 conseques modesmoothtime 지시문으로 구성된 chronyd 서버와 같은 도약 smear 를 사용하여 클라이언트에서 약 초를 숨기는 서버와 호환되지 않습니다. 클라이언트 chronyd 가 이러한 서버와 동기화되도록 구성된 경우 구성 파일에서 gremsectz 를 제거합니다.

7.1.3. 추가 정보

chrony 제품군을 사용하여 NTP 를 구성하는 방법에 대한 자세한 내용은 시간 동기화 구성을 참조하십시오.

7.2. BIND - DNS 구현

RHEL 8에는 버전 9.11에 BIND(Berkeley Internet Name Domain)가 포함되어 있습니다. 이 버전의 DNS 서버는 버전 9.10에 비해 여러 새로운 기능 및 기능 변경 사항을 도입했습니다.

새로운 기능:

  • Catalog Zones 라는 보조 서버를 프로비저닝하는 새로운 방법이 추가되었습니다.
  • 이제 도메인 이름 시스템 쿠키 이름이 지정된 서비스와 dig 유틸리티에 의해 전송됩니다.
  • 응답 속도 제한 기능은 이제 DNS 간소화 공격을 완화하는 데 도움이 될 수 있습니다.
  • response-policy 영역(RPZ)의 성능이 향상되었습니다.
  • map 이라는 새 영역 파일 형식이 추가되었습니다. 이 형식으로 저장된 영역 데이터는 메모리에 직접 매핑할 수 있으므로 영역을 훨씬 더 빠르게 로드할 수 있습니다.
  • delv (도메인 엔티티 조회 및 검증)라는 새로운 도구가 추가되어 dig와 같은 DNS 데이터를 찾고 내부 DNS 보안 확장(DNSSEC) 검증을 수행하기 위한 의미도 추가되었습니다.
  • 이제 새로운 mdig 명령을 사용할 수 있습니다. 이 명령은 여러 파이프라인 쿼리를 보낸 다음 다음 쿼리를 전송하기 전에 하나의 쿼리를 전송하고 응답을 기다리는 대신 응답을 기다리는 dig 명령의 버전입니다.
  • 재귀 리졸버 성능을 개선하는 새로운 prefetch 옵션이 추가되었습니다.
  • 뷰 간에 영역 데이터를 공유할 수 있도록 하는 새로운 보기 영역 옵션이 추가되었습니다. 이 옵션을 사용하면 메모리에 여러 복사본을 저장하지 않고도 여러 뷰가 동일한 영역을 권한 있는 상태로 제공할 수 있습니다.
  • 영역에 최대 TTL을 적용하는 새로운 max-zone-ttl 옵션이 추가되었습니다. TTL이 더 높은 영역이 로드되면 로드가 실패합니다. TTL이 높은 DDNS(Dynamic DNS) 업데이트는 허용되지만 TTL은 잘립니다.
  • 서비스 거부 공격을 통해 권한 있는 서버로 재귀 확인자가 보내는 쿼리를 제한하기 위해 새 할당량이 추가되었습니다.
  • 이제 nslookup 유틸리티는 기본적으로 IPv6 및 IPv4 주소를 모두 조회합니다.
  • 이제 named 서비스는 시작하기 전에 다른 이름 서버 프로세스가 실행 중인지 확인합니다.
  • 서명된 영역을 로드할 때 named 는 RSIG(리소스 레코드 서명) 시간이 향후에 있는지 확인하고 필요한 경우 RRSIG를 즉시 다시 생성합니다.
  • 이제 영역 전송에서 더 작은 메시지 크기를 사용하여 메시지 압축을 개선하여 네트워크 사용량을 줄입니다.

기능 변경 사항:

  • 새로운 통계를 포함한 통계 채널의 버전 3 XML 스키마는 더 빠른 구문 분석을 위해 플랫화된 XML 트리를 통해 HTTP 인터페이스에서 제공합니다. 레거시 버전 2 XML 스키마는 더 이상 지원되지 않습니다.
  • 이제 named 서비스는 기본적으로 IPv6 및 IPv4 인터페이스에서 수신 대기합니다.
  • named 서비스는 더 이상 GeoIP 데이터베이스를 지원하지 않습니다. 쿼리 보낸 사람 위치가 가정하여 정의한 ACL(액세스 제어 목록)을 사용할 수 없습니다.
  • RHEL 8.2 이후 named 서비스는 libmaxminddb 데이터 형식으로 제공되는 GeoIP2를 지원합니다.

7.3. DNS 확인

RHEL 7에서 nslookuphost 유틸리티는 나열된 이름 서버에서 사용 가능한 재귀 플래그 없이 응답을 수락할 수 있었습니다. RHEL 8에서 nslookuphost 는 마지막으로 구성된 이름 서버인 경우 재귀를 사용할 수 없는 이름 서버에서 응답을 무시합니다. 마지막으로 구성된 이름 서버의 경우 사용 가능한 재귀 플래그 없이 응답이 허용됩니다.

그러나 마지막으로 구성된 이름 서버가 응답하지 않거나 연결할 수 없는 경우 이름 확인이 실패합니다. 이러한 오류를 방지하려면 다음 방법 중 하나를 사용할 수 있습니다.

  • 구성된 이름 서버가 항상 사용 가능한 플래그를 설정하여 응답해야 합니다.
  • 모든 내부 클라이언트에 재귀 기능을 허용합니다.

선택적으로 dig 유틸리티를 사용하여 재귀가 사용 가능한지 여부를 탐지할 수도 있습니다.

7.4. RHEA

기본적으로 RHEL 8에서는 이전 버전과 호환성을 위해 TLS가 포함된 MD5 지문을 사용합니다. 그러나 FIPS 모드에서는 MD5 해시 기능을 사용할 수 없으므로 기본 Postfix 설정에서 TLS가 잘못 기능할 수 있습니다. 이 문제를 해결하려면 postfix 설정 파일에서 해시 함수를 SHA-256 으로 변경해야 합니다.

자세한 내용은 관련 링크 https://access.redhat.com/articles/5824391를 참조하십시오.

7.5. printing

7.5.2. CUPs 로그 위치

CUPS는 다음 세 가지 유형의 로그를 제공합니다.

  • 오류 로그
  • 액세스 로그
  • 페이지 로그

RHEL 8에서는 RHEL 7에서 사용된 /var/log/cups 디렉터리의 특정 파일에 로그가 더 이상 저장되지 않습니다. 대신 세 가지 유형 모두 다른 프로그램의 로그와 함께 systemd-journald에 중앙에 로깅됩니다.

RHEL 8에서 CUPS 로그를 사용하는 방법에 대한 자세한 내용은 systemd 저널의 CUPS 로그 액세스를 참조하십시오.

7.5.3. 추가 정보

RHEL 8에서 인쇄를 구성하는 방법에 대한 자세한 내용은 인쇄 구성을 참조하십시오.

7.6. 성능 및 전원 관리 옵션

7.6.1. 권장 TuneD 프로파일의 주요 변경 사항

RHEL 8에서는 tuned-adm recommend 명령으로 보고된 권장 TuneD 프로필은 다음 규칙에 따라 선택됩니다.

  • (syspurpose show 명령을 통해 보고되는)syspurpose 역할에는 atomic이 포함되는 동시에 다음과 같이 선택됩니다.

    • 베어 메탈에서 TuneD가 실행 중이면 atomic-host 프로필이 선택됩니다.
    • TuneD가 가상 머신에서 실행 중인 경우 atomic-guest 프로필이 선택됩니다.
  • TuneD가 가상 머신에서 실행 중인 경우 virtual-guest 프로파일이 선택됩니다.
  • syspurpose 역할에 desktop 또는 workstation이 포함되어 있으며 섀시 유형(dmidecode를 통해 보고)이 Notebook, Laptop 또는 Portable이면 balanced 프로파일이 선택됩니다.
  • 위의 어떤 규칙에도 일치하지 않으면 throughput-performance 프로파일이 선택됩니다.

일치하는 첫 번째 규칙이 적용됩니다.

7.7. 인프라 서비스 구성 요소에 대한 기타 변경 사항

특정 인프라 서비스 구성 요소에 대한 기타 주요 변경 사항 요약은 다음과 같습니다.

표 7.1. 인프라 서비스 구성 요소에 대한 주요 변경 사항

이름변경 유형추가 정보

acpid

옵션 변경

-d (debug)는 더 이상 -f (foreair)를 나타내지 않습니다.

bind

설정 옵션 제거

DNSSEC 표시등 자동 제거; 대신 사용하지 마십시오.

brltty

설정 옵션 변경

--message-delay brltty 이름이 --message-timeout으로 변경

brltty

설정 옵션 제거

-u [-update-interval=] 가 제거됨

brltty

설정 옵션 변경

Bluetooth 장치 주소에 콜론(:) 대신 대시(-)가 포함될 수 있습니다. bth:bluez: 장치 한정자 별칭은 더 이상 지원되지 않습니다.

cups

기능 제거

보안상의 이유로 업스트림에서 인터페이스 스크립트 지원 삭제 OS 또는 독점형에서 제공하는 ppds 및 드라이버를 사용합니다.

cups

지시문 옵션 제거

/etc/cups/cupsd.conf 에서 AuthType 및 DefaultAuthType 지시문에 대한 다이제스트BasicDigest 인증 유형을 제거했습니다. Basic 으로 마이그레이션 .

cups

지시문 옵션 제거

Removed cupsd.conf에서 포함

cups

지시문 옵션 제거

cups-files.conf 에서 ServerCertificateServerKey 를 제거한 대신 Serverkeychain 을 사용합니다.

cups

conf 파일 간에 이동하는 지시문

SetEnvPassEnvcupsd.conf 에서 cups-files.conf로 이동

cups

conf 파일 간에 이동하는 지시문

PrintcapFormatcupsd.conf 에서 cups-files.conf로 이동

cups-filters

기본 구성 변경

cups-browsed로 검색된 원격 출력 대기열의 이름이 이제 원격 출력 대기열 이름이 아니라 프린터의 장치 ID를 기반으로 생성됩니다.

cups-filters

기본 구성 변경

CreateIPPprinterQueues 는 IPP 프린터 큐 자동 생성을 위해 All 으로 설정해야 합니다.

cyrus-imapd

데이터 형식 변경

Cyrus-imapd 3.0.7에는 데이터 형식이 다릅니다.

dhcp

동작 변경

dhclient 는 기본적으로 하드웨어 주소를 클라이언트 식별자로 보냅니다. client-id 옵션은 구성할 수 있습니다. 자세한 내용은 /etc/dhcp/dhclient.conf 파일을 참조하십시오.

dhcp

호환되지 않는 옵션

이제 -I 옵션이 standard-ddns-updates에 사용됩니다. 이전 기능(dhcp-client-identifier)에 대해 새 -C 옵션을 사용합니다.

dosfstools

동작 변경

이제 데이터 구조가 클러스터 크기에 자동으로 정렬됩니다. 정렬을 비활성화하려면 -a 옵션을 사용합니다. fsck.fat 는 이제 -r 옵션을 사용하여 이전에 선택한 대화형 복구 모드로 기본 설정됩니다.

지문

기능 제거

 

GeoIP

기능 제거

 

grep

동작 변경

grep 은 이제 현재 로케일에 대해 부적절하게 인코딩된 파일을 바이너리로 처리합니다.

grep

동작 변경

grep -P 에서 더 이상 오류를 보고하지 않으며 지정된 경우 잘못된 UTF-8 데이터를 종료합니다.

grep

동작 변경

grep 은 이제 GREP_OPTIONS 환경 변수가 사용되는지 여부를 경고합니다. 대신 별칭 또는 스크립트를 사용합니다.

grep

동작 변경

grep -P eports 오류가 발생하고 UTF-8 이외의 멀티 바이트 문자 인코딩으로 로케일에서 종료됩니다.

grep

동작 변경

바이너리 데이터를 검색할 때 grep 은 텍스트가 아닌 바이트를 줄 terminators로 취급할 수 있으며 성능에 큰 영향을 미칠 수 있습니다.

grep

동작 변경

grep -z 는 더 이상 바이트 '\200'을 바이너리 데이터로 자동 처리하지 않습니다.

grep

동작 변경

컨텍스트는 -m 으로 인해 생략된 선택된 행을 더 이상 제외하지 않습니다.

irssi

동작 변경

SSLv2SSLv3 는 더 이상 지원되지 않습니다.

lftp

옵션 변경

Xfer:log 및 xfer:log -file 더 이상 사용되지 않습니다. 이제 log:enabledlog:file 명령에서 사용할 수 있습니다.

ntp

기능 제거

NTP가 제거되었습니다. 대신 chrony 사용

RHEA

구성 변경

3.x 버전에는 업그레이드 후 이전 버전과 호환되는 기본 설정으로 redfish 프로그램을 실행하는 호환성 안전 net가 있습니다.

RHEA

구성 변경

Postfix MySQL 데이터베이스 클라이언트에서 기본 option_group 값이 client 로 변경되었으며 이전 버전과 호환되는 동작에 대해 빈 값으로 설정합니다.

RHEA

구성 변경

postqueue 명령은 더 이상 모든 메시지의 도착 시간을 UTC로 보고하지 않습니다. 이전 동작을 가져오려면 main.cf:import_environment 에서 TZ=UTC 를 설정합니다. 예를 들면 다음과 같습니다.

import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ=UTC XAUTHORITY DISPLAY LANG=C.

RHEA

구성 변경

ECDHE - StatefulSet d_tls_eecdh_grade 기본값을 auto; 새 매개변수 tls_eecdh_auto_curves 와 협상할 수 있는 곡선 이름을 사용합니다.

RHEA

구성 변경

append_dot_mydomain (new: no, old: yes), master.cf chroot (new: n, old: y), ProfileBundle utf8 (new: yes, old: no)의 기본값을 변경했습니다.

RHEA

구성 변경

relay_domains 의 기본값(new: empty, old: $mydestination).

RHEA

구성 변경

mynetworks_style 기본값은 서브넷에서 host 로 변경되었습니다.

powertop

옵션 제거

-d 제거됨

powertop

옵션 변경

-h 는 더 이상 --html 의 별칭이 아닙니다. 이제 --help 에 대한 별칭입니다.

powertop

옵션 제거

-u 제거됨

quagga

기능 제거

 

sendmail

구성 변경

sendmail은 기본적으로 압축되지 않은 IPv6 주소를 사용하므로 0개의 서브넷이 더 구체적으로 일치할 수 있습니다. 설정 데이터는 동일한 형식을 사용해야 하므로 8.15를 사용하기 전에 IPv6:[0-9a-fA-F:]*::IPv6:: 과 같은 패턴을 업데이트해야 합니다.

spamassasin

명령줄 옵션 제거

스팸에서 --ssl-version 을 제거합니다.

spamassasin

명령줄 옵션 변경

spamc에서 명령줄 옵션 -S/-ssl 을 더 이상 사용하여 SSL/TLS 버전을 지정할 수 없습니다. 이제 이 옵션은 TLS를 활성화하기 위해 인수 없이만 사용할 수 있습니다.

spamassasin

지원되는 SSL 버전 변경

스팸 및 스팸에서는 SSLv3가 더 이상 지원되지 않습니다.

spamassasin

기능 제거

SA-update 는 더 이상 필터링 규칙의 SHA1 유효성 검사를 지원하지 않으며 대신 SHA256/SHA512 검증을 사용합니다.

vim

기본 설정 변경

vim은 ~/.vimrc 파일을 사용할 수 없는 경우 default.vim 스크립트를 실행합니다.

vim

기본 설정 변경

vim은 이제 터미널에서 브래킷된 붙여넣기를 지원합니다. 이전 동작을 위해 vimrc에 'set t_BE='를 포함합니다.

vsftpd

기본 구성 변경

anonymous_enable disabled

vsftpd

기본 구성 변경

strict_ssl_read_eof 의 기본값은 YES입니다.

vsftpd

기능 제거

tcp_wrappers 는 더 이상 지원되지 않습니다.

vsftpd

기본 구성 변경

TLSv1 및 TLSv1.1은 기본적으로 비활성화되어 있습니다.

wireshark

Python 바인딩 제거

Dissectors는 더 이상 Python으로 작성할 수 없으며 대신 C를 사용합니다.

wireshark

옵션 제거

- c 하위 옵션 - asynchronous DNS 이름 확인을 위한 -N 옵션 제거

wireshark

자주하는 질문

H 옵션을 사용하면 출력에 더 이상 SHA1, RIPEMD160 및 MD5 해시가 표시되지 않습니다. 이제 SHA256, RIPEMD160 및 SHA1 해시가 표시됩니다.

wvdial

기능 제거

 

8장. 보안

8.1. 핵심 암호화 구성 요소의 변경

8.1.1. 전체 시스템의 암호화 정책이 기본적으로 적용

암호화 정책은 TLS, IPsec, DNSSEC, Kerberos 프로토콜 및 OpenSSH 제품군을 다루는 코어 암호화 하위 시스템을 구성하는 Red Hat Enterprise Linux 8의 구성 요소입니다. 이는 관리자가 update-crypto-policies 명령을 사용하여 선택할 수 있는 소규모 정책 세트를 제공합니다.

DEFAULT 전체 시스템의 암호화 정책은 현재의 위협 모델에 대한 보안 설정을 제공합니다. 이 보안 설정은 TLS 1.2 및 1.3 프로토콜과 IKEv2 및 SSH2 프로토콜을 허용합니다. RSA 키와 Diffie-Hellman 매개변수는 2047bit보다 큰 경우 허용됩니다.

자세한 내용은 Red Hat 블로그의 Consistent security by crypto policies in Red Hat Enterprise Linux 8 문서 및 update-crypto-policies(8) 매뉴얼 페이지를 참조하십시오.

8.1.2. 안전하지 않은 암호화 제품군 및 프로토콜을 제거하여 강력한 암호화 기본값

다음 목록에는 RHEL 8의 코어 암호화 라이브러리에서 제거된 암호화 제품군 및 프로토콜이 포함되어 있습니다. 소스에는 존재하지 않거나 빌드 중에 지원이 비활성화되므로 애플리케이션은 사용할 수 없습니다.

  • DES (RHEL 7 이후)
  • 모든 내보내기 등급 암호화 제품군 (RHEL 7 이후)
  • 서명된 MD5 (RHEL 7 이후)
  • SSLv2 (RHEL 7 이후)
  • SSLv3 (RHEL 8 이후)
  • 모든 ECC 곡선 < 224 비트 (RHEL 6)
  • 모든 바이너리 필드 ECC 곡선 (RHEL 6)

8.1.3. 모든 정책 수준에서 암호화 제품군 및 프로토콜 비활성화

다음 암호화 제품군 및 프로토콜은 모든 암호화 정책 수준에서 비활성화되어 있습니다. 개별 애플리케이션의 명시적 구성에서만 활성화할 수 있습니다.

  • 매개 변수가 있는 DH < 1024 비트
  • 키 크기가 있는 RSA < 1024bit
  • Camellia
  • ARIA
  • SEED
  • IDEA
  • 무결성 전용 암호화 제품군
  • SHA-384 HMAC를 사용하는 TLS CBC 모드 암호화 제품군
  • AES-CCM8
  • 모든 ECC 곡선은 europ256k1을 포함한 TLS 1.3과 호환되지 않습니다.
  • IKEv1 (RHEL 8 이후)

8.1.4. 시스템을 FIPS 모드로 전환

시스템 전체 암호화 정책에는 연방 정보 처리 표준(FIPS)의 요구 사항에 따라 암호화 모듈을 자체 점검할 수 있는 정책 수준이 포함되어 있습니다. FIPS 모드를 활성화하거나 비활성화하는 fips-mode-setup 툴은 FIPS 시스템 전체 암호화 정책 수준을 내부적으로 사용합니다.

RHEL 8에서 시스템을 FIPS 모드로 전환하려면 다음 명령을 입력하고 시스템을 다시 시작하십시오.

# fips-mode-setup --enable

자세한 내용은 fips-mode-setup(8) 매뉴얼 페이지를 참조하십시오.

8.1.5. TLS 1.0 및 TLS 1.1은 더 이상 사용되지 않음

TLS 1.0 및 TLS 1.1 프로토콜은 DEFAULT 시스템 전체 암호화 정책 수준에서 비활성화됩니다. 예를 들어 Firefox 웹 브라우저에서 비디오 회의 애플리케이션을 사용하려면 더 이상 사용되지 않는 프로토콜을 사용해야 하는 경우 시스템 전체 암호화 정책을 LEGACY 수준으로 전환합니다.

# update-crypto-policies --set LEGACY

자세한 내용은 RHEL 8의 Strong crypto 기본값과 Red Hat Customer Portal의 약한 암호화 지식 베이스 문서 및 update-crypto-policies(8) 매뉴얼 페이지를 참조하십시오.

8.1.6. 암호화 라이브러리에서 TLS 1.3 지원

이번 업데이트에는 모든 주요 백엔드 암호화 라이브러리에서 기본적으로 TLS(Transport Layer Security) 1.3을 사용하도록 설정되어 있습니다. 이를 통해 운영 체제 통신 계층 전반에서 낮은 대기 시간을 단축하고 RSA-PSS 또는 X25519와 같은 새로운 알고리즘을 사용하여 애플리케이션의 개인정보 보호 및 보안을 강화합니다.

8.1.7. RHEL 8에서 DSA가 더 이상 사용되지 않음

Red Hat Enterprise Linux 8에서는 DSA(Digital Signature Algorithm)가 더 이상 사용되지 않습니다. DSA 키에 의존하는 인증 메커니즘은 기본 구성에서 작동하지 않습니다. OpenSSH 클라이언트는 LEGACY 시스템 전체 암호화 정책 수준에서도 DSA 호스트 키를 허용하지 않습니다.

8.1.8. SSL2 Client HelloNSS에서 더 이상 사용되지 않음

TLS(Transport Layer Security) 프로토콜 버전 1.2 이전의 SSL(Secure Sockets Layer) 프로토콜 버전 2와 역호환되는 방식으로 서식이 지정된 Client Hello 메시지와 협상을 시작할 수 있습니다. NSS(Network Security Services) 라이브러리에서 이 기능에 대한 지원은 더 이상 사용되지 않으며 기본적으로 비활성화되어 있습니다.

이 기능에 대한 지원이 필요한 애플리케이션은 새로운 SSL_ENABLE_V2_COMPATIBLE_HELLO API를 사용하여 활성화해야 합니다. 이 기능에 대한 지원은 Red Hat Enterprise Linux 8의 이후 릴리스에서 완전히 삭제될 수 있습니다.

8.1.9. NSS는 기본적으로 SQL을 사용합니다.

네트워크 보안 서비스(NSS) 라이브러리는 이제 기본적으로 신뢰 데이터베이스에 SQL 파일 형식을 사용합니다. 이전 릴리스에서 기본 데이터베이스 형식으로 사용된 DBM 파일 형식은 여러 프로세스에서 동일한 데이터베이스에 대한 동시 액세스를 지원하지 않으며 업스트림에서 더 이상 사용되지 않습니다. 결과적으로 NSS 신뢰 데이터베이스를 사용하여 키, 인증서 및 해지 정보를 저장하는 애플리케이션에서는 기본적으로 SQL 형식으로 데이터베이스를 만듭니다. 레거시 DBM 형식으로 데이터베이스를 생성하려고 하면 실패합니다. 기존 DBM 데이터베이스는 읽기 전용 모드로 열려 있으며 자동으로 SQL 형식으로 변환됩니다. NSS는 Red Hat Enterprise Linux 6 이후의 SQL 파일 형식을 지원합니다.

8.2. SSH

8.2.1. OpenSSH가 버전 7.8p1로 업데이트

openssh 패키지가 업스트림 버전 7.8p1로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • SSH version 1 프로토콜에 대한 지원 삭제
  • hmac-ripemd160 메시지 인증 코드에 대한 지원 삭제
  • RC4(arcfour) 암호화 지원 삭제
  • Blowfish 암호화 지원 삭제
  • CAST 암호화 지원 삭제
  • UseDNS 옵션의 기본값을 no로 변경
  • DSA 공개 키 알고리즘이 기본적으로 비활성화됨
  • Diffie-Hellman 매개변수의 최소 모듈러스 크기가 2048bit로 변경됨
  • ExposeAuthInfo 설정 옵션의 의미가 변경됨
  • UsePrivilegeSeparation=sandbox 옵션은 필수 사항이며 비활성화할 수 없음
  • 허용되는 최소의 RSA> 키 크기를 1024bit로 설정

8.2.2. libssh는 코어 암호화 구성 요소로서 SSH를 구현

이러한 변경으로 인해 Red Hat Enterprise Linux 8의 핵심 암호화 구성 요소인 libssh 가 도입되었습니다. libssh 라이브러리는 SSH(Secure SHell) 프로토콜을 구현합니다.

8.2.3. RHEL 8에서는 libssh2 를 사용할 수 없습니다.

더 이상 사용되지 않는 libssh2 라이브러리는 elliptic 곡선 또는 GREAPI(Generic Security Service Application Program Interface) 지원 등의 기능을 누락하고 libssh를 위해 RHEL 8에서 제거되었습니다.

8.3. Rsyslog

8.3.1. 기본 rsyslog 설정 파일은 비-레거시 형식 사용

rsyslog 패키지에 있는 설정 파일은 기본적으로 비-레거시 형식을 사용합니다. 현재 및 레거시 구성 문을 혼합하는 경우 몇 가지 제약 사항이 있지만 레거시 형식을 계속 사용할 수 있습니다. 이전 RHEL 릴리스에서 적용된 설정을 수정해야 합니다. 자세한 내용은 rsyslog.conf(5) 매뉴얼 페이지를 참조하십시오.

8.3.2. imjournal 옵션 및 최소화 journald 사용을 사용하여 시스템 로깅 구성

journald 에서 파일을 교체했을 때 나타날 수 있는 중복 레코드를 방지하기 위해 imjournal 옵션이 추가되었습니다. 이 옵션을 사용하면 성능에 영향을 미칠 수 있습니다.

journald 없이 시스템 로깅 구성에 설명된 대로 더 나은 성능을 제공하도록 rsyslog 를 포함하는 시스템을 구성할 수 있습니다. 또는 최소화된 journald 사용 지식 베이스 문서를 사용하여 수행할 수 있습니다.

8.3.3. 성능에 대한 기본 로깅 설정의 부정적인 영향

기본 로깅 환경 설정에서는 systemd-journaldrsyslog 를 사용하여 실행될 때 4GB의 메모리 또는 속도 제한 값의 조정이 복잡할 수 있습니다.

자세한 내용은 성능 및 완화에 대한 RHEL 기본 로깅 설정의 부작용을 참조하십시오.

8.4. OpenSCAP

8.4.1. OpenSCAP API 통합

이번 업데이트에서는 통합된 OpenSCAP 공유 라이브러리 API를 제공합니다. 63 기호가 제거되었으며 14가 추가되고 4는 업데이트된 서명이 있습니다. OpenSCAP 1.3.0에서 제거된 기호는 다음과 같습니다.

  • 버전 1.2.0에서 더 이상 사용되지 않음으로 표시된 기호
  • SEAP 프로토콜 기호
  • 내부 도우미 함수
  • 사용되지 않는 라이브러리 기호
  • 구현되지 않은 기호

8.4.2. oscap-podman 은 컨테이너 보안 및 컴플라이언스 검사를 위해 oscap-docker 교체

RHEL 8.2에서는 컨테이너 보안 및 컴플라이언스 검사를 위한 새로운 유틸리티가 도입되었습니다. oscap-podman 툴에서는 RHEL 7에서 컨테이너 및 컨테이너 이미지를 스캔하는 데 사용되는 oscap-docker 유틸리티와 동일합니다.

자세한 내용은 Scanning container and container images for vulnerabilities 섹션을 참조하십시오.

8.5. audit

8.5.1. Audit 3.0에서 audispdauditd로 교체

이번 업데이트에서 audispd 기능이 auditd로 변경되었습니다. 결과적으로 audispd 설정 옵션이 이제 auditd.conf의 일부가 되었습니다. 또한 plugins.d 디렉터리가 /etc/audit 로 이동되었습니다. 이제 service auditd state 명령을 실행하여 auditd 및 해당 플러그인을 확인할 수 있습니다.

8.6. SELinux

8.6.1. SELinux 패키지가 Python 3으로 마이그레이션

  • policycoreutils-pythonpolicycoreutils-python-utilspython3-policycoreutils 패키지로 교체되었습니다.
  • 이제 libselinux-python 패키지의 기능은 python3-libselinux 패키지에서 제공합니다.
  • setools-libs 패키지의 기능은 이제 python3-setools 패키지에서 제공합니다.
  • libsemanage-python 패키지의 기능은 이제 python3-libsemanage 패키지에서 제공합니다.

8.6.2. SELinux 하위 패키지의 변경 사항

  • libselinux-static,libsemanage-static,libsepol-static, setools-libs-tcl 이 제거되었습니다.
  • RHEL 8.0 및 8.1에서는 setools-guisetools-console-analyses 를 사용할 수 없습니다. RHEL 8.2는 이러한 하위 패키지가 포함된 RHEL 8의 첫 번째 마이너 버전입니다.

8.6.3. SELinux 정책 변경

init_t 도메인 유형은 RHEL 8에서 더 이상 제한되지 않습니다. 이로 인해 다른 SELinux 레이블 접근 방식을 사용하는 타사 애플리케이션에 문제가 발생할 수 있습니다.

비표준 위치의 레이블 지정 문제를 해결하기 위해 이러한 위치에 대한 파일 컨텍스트 균형을 구성할 수 있습니다.

  1. /my/apps/ 디렉터리에 대한 파일 컨텍스트 균형을 구성합니다.

    # semanage fcontext -a -e / /my/apps
  2. SELinux 정책의 로컬 사용자 정의를 나열하여 파일 컨텍스트 균형을 확인합니다.

    # semanage fcontext -l -C
    
    SELinux Local fcontext Equivalence
    
    /my/apps = /
  3. /my/apps 의 컨텍스트를 기본값으로 복원하여 이제 /:의 컨텍스트와 동일합니다.

    # restorecon -Rv /my/apps
    restorecon reset /my/apps context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:root_t:s0
    restorecon reset /my/apps/bin context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:bin_t:s0
    restorecon reset /my/apps/bin/executable context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:bin_t:s0

이 방법은 비표준 위치에 설치된 대부분의 파일과 디렉터리에 올바른 레이블을 할당하므로 일부 실행 파일에 의해 시작된 프로세스에 올바르게 레이블이 지정됩니다.

파일 컨텍스트 균형을 제거하려면 다음 명령을 사용합니다.

# semanage fcontext -d -e / /my/apps
  • 자세한 내용은 semanage-fcontext 매뉴얼 페이지를 참조하십시오.

8.6.4. SELinux 부울 변경

8.6.4.1. 새로운 SELinux 부울값

이번 SELinux 시스템 정책 업데이트로 다음과 같은 부울 값이 도입되었습니다.

  • colord_use_nfs
  • deny_bluetooth
  • httpd_use_opencryptoki
  • logrotate_use_fusefs
  • mysql_connect_http
  • pdns_can_network_connect_db
  • ssh_use_tcpd
  • sslh_can_bind_any_port
  • sslh_can_connect_any_port
  • tor_can_onion_services
  • unconfined_dyntrans_all
  • use_virtualbox
  • virt_sandbox_share_apache_content
  • virt_use_pcscd

8.6.4.2. SELinux 부울 제거

RHEL 8 SELinux 정책은 이전 릴리스에서 사용 가능한 다음과 같은 부울을 제공하지 않습니다.

  • container_can_connect_any
  • ganesha_use_fusefs

8.6.4.3. 기본값 변경

RHEL 8에서는 다음 SELinux 부울이 이전 릴리스와 다른 기본값으로 설정됩니다.

  • domain_can_mmap_files 는 기본적으로 꺼져 있습니다.
  • httpd_graceful_shutdown 은 기본적으로 꺼져 있습니다.
  • mozilla_plugin_can_network_connect 는 기본적으로 설정되어 있습니다.
  • named_write_master_zones 가 기본적으로 설정되어 있습니다.

또한 안티바이러스_use_jit 및 ssh_ chroot_rw_homedirs 부울에 대한 설명이 변경되었습니다.

의미를 포함한 부울 목록을 가져오고 해당 항목이 활성화되어 있는지 확인하려면 selinux-policy-devel 패키지를 설치하고 다음을 사용합니다.

# semanage boolean -l

8.6.5. SELinux 포트 유형 변경

RHEL 8 SELinux 정책은 다음과 같은 추가 포트 유형을 제공합니다.

  • appswitch_emp_port_t
  • babel_port_t
  • bfd_control_port_t
  • conntrackd_port_t
  • firepower_port_t
  • nmea_port_t
  • nsca_port_t
  • openqa_port_t
  • openqa_websockets_port_t
  • priority_e_com_port_t
  • qpasa_agent_port_t
  • rkt_port_t
  • smntubootstrap_port_t
  • statsd_port_t
  • versa_tek_port_t

또한 dns_port_tephemeral_port_t 포트 유형의 정의가 변경되었으며 gluster_port_t 포트 유형이 제거되었습니다.

8.6.6. sesearch 사용의 변경 사항

  • sesearch 명령은 더 이상 -C 옵션을 사용하지 않으며 조건부 표현식을 포함해야 합니다.
  • -T,--type 옵션이 다음과 같이 변경되었습니다.

    • - t ,--type_trans - type_transition 규칙을 찾습니다.
    • --type_member - type_member 규칙을 찾습니다.
    • --type_change - type_change 규칙을 찾습니다.

8.7. 제거된 보안 기능

8.7.1. shadow-utils 에서는 더 이상 all-numeric 사용자 및 그룹 이름을 허용하지 않습니다.

useraddgroupadd 명령은 순수하게 숫자 문자로 구성된 사용자 및 그룹 이름을 허용하지 않습니다. 이러한 이름을 허용하지 않는 이유는 사용자 및 그룹 이름 및 사용자 및 그룹 ID ( numbers)와 함께 작동하는 많은 도구를 혼동 할 수 있기 때문입니다. Red Hat Enterprise Linux 7에서는 all-numeric 사용자 및 그룹 이름이 더 이상 사용되지 않으며 해당 지원은 Red Hat Enterprise Linux 8에서 완전히 제거됩니다.

8.7.2. securetty 가 기본적으로 비활성화되어 있습니다.

최신 Linux 시스템에서 tty 장치 파일의 동적 특성으로 인해 securetty PAM 모듈이 기본적으로 비활성화되어 있으며 /etc/securetty 구성 파일은 더 이상 RHEL에 포함되지 않습니다. 대부분의 경우의 실제 효과가 기본적으로 허용되도록 /etc/securetty 가 가능한 많은 장치를 나열했기 때문에 이러한 변경은 기본적으로 약간의 영향을 미칩니다. 그러나 보다 제한적인 구성을 사용하는 경우 pam_securetty.so 모듈을 /etc/pam.d 디렉터리의 적절한 파일에 활성화하는 행을 추가하고 새 /etc/securetty 파일을 생성해야 합니다.

8.7.3. Clevis HTTP 핀이 제거됨

Clevis HTTP 핀이 RHEL 8에서 제거되었으며 clevis 암호화 http 하위 명령을 더 이상 사용할 수 없습니다.

8.7.3.1. Coolkey 가 제거됨

스마트 카드용 Coolkey 드라이버가 RHEL 8에서 제거되었으며 OpenSC 는 이제 해당 기능을 제공합니다.

8.7.3.2. crypto-utils 가 제거됨

RHEL 8에서 crypto-utils 패키지가 제거되었습니다. openssl,gnutls-utilsnss-tools 패키지에서 제공하는 툴을 대신 사용할 수 있습니다.

8.7.3.3. KLIPS가 Libreswan에서 제거되었습니다.

Red Hat Enterprise Linux 8에서는 KLIPS(커널 IP 보안) IPsec 스택에 대한 지원이 Libreswan 에서 제거되었습니다.

9장. 네트워킹

9.1. NetworkManager

9.1.1. 레거시 네트워크 스크립트 지원

네트워크 스크립트는 Red Hat Enterprise Linux 8에서 더 이상 사용되지 않으며 기본적으로 제공되지 않습니다. 기본 설치는 nmcli 툴을 통해 NetworkManager 를 호출하는 ifupifdown 스크립트의 새 버전을 제공합니다. Red Hat Enterprise Linux 8에서 ifupifdown 스크립트를 실행하려면 NetworkManager 를 실행해야 합니다.

참고

/sbin/ifup-local,ifdown-pre-localifdown-local 스크립트의 사용자 지정 명령이 실행되지 않습니다.

이러한 스크립트가 필요한 경우 다음 명령을 사용하여 시스템에서 더 이상 사용되지 않는 네트워크 스크립트를 설치할 수 있습니다.

yum install network-scripts

ifupifdown 스크립트는 설치된 레거시 네트워크 스크립트에 연결됩니다.

레거시 네트워크 스크립트를 호출하면 사용 중단을 알리는 경고 메시지가 표시됩니다.

9.1.2. NetworkManager는 SR-IOV 가상 함수 지원

Red Hat Enterprise Linux 8에서 NetworkManager 는 SR-IOV(Single-root I/O Virtualization)를 지원하는 인터페이스에 대해 VF(가상 기능) 수를 구성할 수 있습니다. 또한 NetworkManager는 MAC 주소, VLAN, spoof checking 설정 및 허용된 비트레이트와 같은 VF의 일부 속성을 설정할 수 있습니다. SR-IOV와 관련된 모든 속성은 sriov 연결 설정에서 사용할 수 있습니다. 자세한 내용은 nm-settings(5) 매뉴얼 페이지를 참조하십시오.

9.1.3. NetworkManager는 연결에 대한 와일드카드 인터페이스 이름 일치 지원

이전에는 인터페이스 이름의 정확한 일치만 사용하여 주어진 인터페이스에 대한 연결을 제한할 수 있었습니다. 이번 업데이트를 통해 연결에 와일드카드를 지원하는 새로운 match.interface-name 속성이 있습니다. 이제 사용자는 와일드카드 패턴을 사용하여 보다 유연한 방식으로 연결에 대한 인터페이스를 선택할 수 있습니다.

9.1.4. NetworkManager는 ethtool 오프로드 기능 구성 지원

이번 개선된 기능을 통해 NetworkManagerethtool 오프로드 기능 구성을 지원하며 사용자는 더 이상 init 스크립트 또는 NetworkManager 디스패치 스크립트를 사용할 필요가 없습니다. 결과적으로 다음 방법 중 하나를 사용하여 연결 프로필의 일부로 오프로드 기능을 구성할 수 있습니다.

  • nmcli 유틸리티 사용
  • /etc/NetworkManager/system-connections/ 디렉터리에서 키 파일 편집
  • /etc/sysconfig/network-scripts/ifcfg-* 파일을 편집하여

이 기능은 현재 그래픽 인터페이스와 nmtui 유틸리티에서 지원되지 않습니다.

자세한 내용은 nmcli를 사용하여 ethtool 오프로드 기능 구성을 참조하십시오.

9.1.5. NetworkManager는 이제 기본적으로 내부 DHCP 플러그인을 사용합니다.

NetworkManager내부dhclient DHCP 플러그인을 지원합니다. 기본적으로 RHEL (Red Hat Enterprise Linux) 7의 NetworkManagerdhclient 및 RHEL 8 내부 플러그인을 사용합니다. 특정 상황에서는 플러그인이 다르게 작동합니다. 예를 들어, dhclient/etc/dhcp/ 디렉터리에 지정된 추가 설정을 사용할 수 있습니다.

RHEL 7에서 RHEL 8로 업그레이드하고 NetworkManager 가 다르게 작동하는 경우 dhclient 플러그인을 사용하려면 /etc/NetworkManager/NetworkManager.conf 파일의 [main] 섹션에 다음 설정을 추가하십시오.

[main]
dhcp=dhclient

9.1.6. RHEL 8에는 NetworkManager-config-server 패키지가 기본적으로 설치되지 않습니다.

NetworkManager-config-server 패키지는 설치 중에 GUI 기본 환경을 사용하는 Server 또는 Server를 선택하는 경우에만 기본적으로 설치됩니다. 다른 환경을 선택한 경우 yum install NetworkManager-config-server 명령을 사용하여 패키지를 설치합니다.

9.2. 패킷 필터링

9.2.1. nftables가 기본 네트워크 패킷 필터링 프레임워크로 iptables 대체

nftables 프레임워크는 패킷 분류 기능을 제공하며 iptables,ip6tables,arptables,ebtables, ipset 툴에 지정된 후속 기능을 제공합니다. 이전의 패킷 필터링 툴에 비해 편의성, 기능 및 성능이 크게 향상되었으며 주요 개선 사항은 다음과 같습니다.

  • 선형 처리를 대신하는 룩업 테이블
  • IPv4IPv6 프로토콜 모두를 위한 단일 프레임워크
  • 전체 규칙 세트를 가져오기, 업데이트 및 저장하는 대신 모든 적용되는 규칙
  • 규칙 세트의 디버깅 및 추적 지원 ( nftrace ) 및 모니터링 추적 이벤트 (nft 툴 내)
  • 프로토콜별 확장 없이 보다 일관되고 컴팩트한 구문
  • 타사 애플리케이션용 Netlink API

iptables과 마찬가지로 nftables는 체인을 저장하기 위해 테이블을 사용합니다. 체인에는 작업을 수행하기 위한 개별 규칙이 포함되어 있습니다. nft 툴은 이전 패킷 필터링 프레임워크의 모든 도구를 대체합니다. libnftables 라이브러리는 libmnl 라이브러리를 통해 nftables Netlink API와 낮은 수준의 상호 작용에 사용할 수 있습니다.

iptables, ip6tables, ebtablesarptables 툴은 같은 이름을 가진 nftables 기반 드롭인 툴로 교체됩니다. 외부 동작은 기존 대응 동작과 일치하지만, 내부적으로는 필요에 따라 호환성 인터페이스를 통해 기존 netfilter 커널 모듈과 함께 nftables를 사용합니다.

nftables 규칙 세트에서 모듈의 영향은 nft list ruleset 명령을 사용하여 확인할 수 있습니다. 이러한 툴은 테이블, 체인 및 규칙을 nftables 규칙 세트에 추가하므로 nft flush ruleset 명령과 같은 nftables 규칙 세트 작업이 이전의 별도의 레거시 명령을 사용하여 설치된 규칙 세트에 영향을 미칠 수 있습니다.

어떤 종류의 툴이 존재하는지 신속하게 확인하기 위해 백엔드 이름을 포함하도록 버전 정보가 업데이트되었습니다. RHEL 8에서는 nftables 기반의 iptables 툴로 다음 버전 문자열이 출력됩니다.

$ iptables --version
iptables v1.8.0 (nf_tables)

기존 iptables 툴이 있는 경우 다음 버전 정보가 출력됩니다.

$ iptables --version
iptables v1.8.0 (legacy)

9.2.2. RHEL 8의 필터 테이블에서 arptables FORWARD가 제거되었습니다.

Red Hat Enterprise Linux (RHEL) 8에서는 arptables FORWARD 체인 기능이 제거되었습니다. 이제 ebtables 툴의 FORWARD 체인을 사용하여 규칙을 추가할 수 있습니다.

9.2.3. iptables-ebtables 의 출력은 ebtables와 100% 호환되지 않습니다.

RHEL 8에서는 ebtables 명령은 iptables-ebtables 패키지에서 제공하며, 여기에는 툴을 기반으로 하는 nftables가 포함됩니다. 이 툴에는 다른 코드 베이스가 있으며 그 출력은 양호할 수 없거나 고의적인 디자인 선택 사항입니다.

결과적으로 일부 ebtables 출력을 구문 분석하는 스크립트를 마이그레이션할 때 다음을 반영하도록 스크립트를 조정합니다.

  • MAC 주소 포맷이 길이가 수정되도록 변경되었습니다. 필요한 경우 개별 바이트 값에는 8진수당 두 문자의 형식을 유지하기 위한 선행 0이 포함됩니다.
  • IPv6 접두사 형식이 RFC 4291를 준수하도록 변경되었습니다. 슬래시 문자 뒤에 오는 부분에는 IPv6 주소 형식의 넷마스크가 더 이상 포함되지 않지만 접두사 길이가 포함됩니다. 이 변경 사항은 유효 (left-contiguous) 마스크에만 적용되며 다른 일부는 여전히 이전 형식으로 인쇄됩니다.

9.2.4. iptablesnftables로 변환하는 새로운 툴

이번 업데이트에서는 iptables-translateip6tables-translate 툴을 추가하여 기존의 iptables 또는 ip6tables 규칙을 nftables에 해당하는 규칙으로 변환했습니다. 일부 확장 기능에는 해당 지원이 누락되어 있는 경우도 있습니다. 이러한 해당 기능이 누락된 확장 기능이 있는 경우 툴은 # 기호가 앞에 있는 미변환 규칙을 출력합니다. 예를 들면 다음과 같습니다.

| % iptables-translate -A INPUT -j CHECKSUM --checksum-fill
| nft # -A INPUT -j CHECKSUM --checksum-fill

또한 사용자는 규칙 덤프를 변환하기 위해 iptables-restore-translateip6tables-restore-translate 툴을 사용할 수 있습니다. 이전에는 iptables-save 또는 ip6tables-save 명령을 사용하여 현재 규칙 덤프를 출력할 수 있습니다. 예를 들면 다음과 같습니다.

| % sudo iptables-save >/tmp/iptables.dump
| % iptables-restore-translate -f /tmp/iptables.dump
| # Translated by iptables-restore-translate v1.8.0 on Wed Oct 17 17:00:13 2018
| add table ip nat
| ...

9.3. wpa_supplicant의 변경 사항

9.3.1. journalctlwpa_supplicant 로그를 읽을 수 있습니다.

RHEL(Red Hat Enterprise Linux) 8에서는 CONFIG_DEBUG_SYSLOG가 활성화된 상태에서 wpa_supplicant 패키지가 구축됩니다. 이렇게 하면 /var/log/wpa_supplicant.log 파일의 콘텐츠를 검사하는 대신 journalctl 유틸리티를 사용하여 wpa_supplicant 로그를 읽을 수 있습니다.

9.3.2. wpa_supplicant 의 무선 확장을 위한 컴파일 타임 지원이 비활성화됨

wpa_supplicant 패키지는 무선 확장을 지원하지 않습니다. 사용자가 wext 를 명령줄 인수로 사용하거나 무선 확장만 지원하는 이전 어댑터에서 사용하려고 하면 wpa_supplicant 데몬을 실행할 수 없습니다.

9.4. 새로운 데이터 청크 유형 I-DATA가 SCTP에 추가

이번 업데이트에는 SCTP(Stream Control Transmission Protocol)에 새로운 데이터 청크 유형, I-DATA 및 스트림 스케줄러를 추가되었습니다. 이전에는 SCTP가 사용자가 보낸 것과 동일한 순서로 사용자 메시지를 전송했습니다. 그 결과, 용량이 큰 SCTP 사용자 메시지는 완전히 전송될 때까지 스트림의 다른 모든 메시지를 차단했습니다. I-DATA 청크를 사용하면 TSN(Transmission Sequence Number) 필드가 오버로드되지 않으므로 SCTP는 스트림을 다른 방식으로 스케줄링할 수 있고, I-DATA는 사용자의 메시지 인터리브를 허용합니다(RFC 8260). 결과적으로 SCTP는 이제 다양한 방법으로 스트림을 예약할 수 있으며 I-DATA 는 사용자 메시지 인터리빙(RFC 8260)을 허용합니다. 두 피어 모두 I-DATA 청크 유형을 지원해야 합니다.

9.5. RHEL 8에서 주요 TCP 기능

Red Hat Enterprise Linux 8은 고성능, 향상된 확장성 및 안정성을 제공하는 TCP 네트워킹 스택 버전 4.18과 함께 배포됩니다. 특히 접속률이 높고 사용량이 많은 TCP 서버의 경우 성능이 향상됩니다.

또한 새로운 TCP 혼잡 알고리즘인 BBRNV 두 가지를 사용할 수 있으므로 대부분 시나리오에서 Cubic보다 대기 시간이 짧아지고 처리량이 향상됩니다.

9.5.1. RHEL 8의 TCP BBR 지원

새로운 TCP 혼잡 제어 알고리즘인 Bottlen1.8.0 Bandwidth 및 Round-trip time (BBR)은 이제 Red Hat Enterprise Linux (RHEL) 8에서 지원됩니다. BBR은 성능 장애 링크 및 RTT(Round-trip time)의 대역폭을 확인하려고 합니다. 대부분의 혼잡 알고리즘은 높은 처리량 링크에 문제가 있는 기본 Linux TCP 혼잡 제어 알고리즘인 CUBIC를 포함한 패킷 손실을 기반으로 합니다. BBR은 손실 이벤트에 직접 반응하지 않으며, 사용 가능한 대역폭과 일치하도록 TCP 태평양 비율을 조정합니다.

이에 대한 자세한 내용은 TCP BBR 혼잡 제어 알고리즘 구성 방법을 참조하십시오.

9.7. 네트워크 인터페이스 이름 변경

Red Hat Enterprise Linux 8에서는 RHEL 7에서와 동일한 일관된 네트워크 장치 이름 지정 스키마가 기본적으로 사용됩니다. 그러나 e1000e,nfp,qede,sfc,tg3bnxt_en 과 같은 특정 커널 드라이버는 RHEL 8의 새로운 설치에서 일관된 이름을 변경했습니다. 그러나 RHEL 7의 업그레이드에는 이름이 보존됩니다.

9.8. ipv6,넷마스크,게이트웨이, 호스트 이름 커널 매개변수가 제거되었습니다.

RHEL 8.3 이후 커널 명령줄에서 네트워크를 구성하기 위해 ipv6,넷마스크,게이트웨이, 호스트 이름 커널 매개 변수가 더 이상 사용할 수 없습니다. 대신 다음과 같은 다양한 형식을 허용하는 consolidated ip 매개변수를 사용합니다.

ip=IP_address:peer:gateway_IP_address:net_mask:host_name:interface_name:configuration_method

이 매개변수가 허용하는 개별 필드 및 기타 형식에 대한 자세한 내용은 dra cut.cmdline(7) 도움말 페이지에서 ip 매개 변수에 대한 설명을 참조하십시오.

9.9. tc 명령의 -ok 옵션 제거

tc 명령의 -ok 옵션이 Red Hat Enterprise Linux 8에서 제거되었습니다. 해결 방법으로 사용자는 커널과 netlink를 통해 직접 통신할 코드를 구현할 수 있습니다. 수신된 응답 메시지, 전송된 요청의 완료 및 상태를 나타냅니다. 시간이 덜 중요한 애플리케이션의 대체 방법은 각 명령에 대해 tc 를 별도로 호출하는 것입니다. 이 문제는 성공적인 각 tc 호출에 대해 OK 를 출력하여 tc -batch 동작을 시뮬레이션하는 사용자 정의 스크립트에서 발생할 수 있습니다.

10장. 커널

10.1. 리소스 제어

10.1.1. Control group v2는 RHEL 8에서 기술 프리뷰로 사용 가능

제어 그룹 v2 메커니즘은 통합된 계층 제어 그룹입니다. 제어 그룹 v2 는 프로세스를 계층적으로 구성하고 제어 및 구성 가능한 방식으로 계층에 따라 시스템 리소스를 배포합니다.

이전 버전과 달리 제어 그룹 v2 에는 단일 계층만 있습니다. 이 단일 계층을 통해 Linux 커널에서는 다음을 수행할 수 있습니다.

  • 소유자의 역할에 따라 프로세스 분류
  • 여러 계층에서 충돌하는 정책 문제 해결

Control 그룹 v2 는 다양한 컨트롤러를 지원합니다.

  • CPU 컨트롤러가 CPU 사이클의 배분을 조정합니다. 이 컨트롤러는 다음을 구현합니다.

    • 일반적인 스케줄링 정책에 대한 가중치 및 절대 대역폭 제한 모델
    • 실시간 스케줄링 정책에 대한 절대 대역폭 할당 모델
  • 메모리 컨트롤러가 메모리 할당을 조정합니다. 현재 다음과 같은 유형의 메모리 사용을 추적할 수 있습니다.

    • Userland 메모리 - 페이지 캐시 및 익명 메모리
    • dentries 및 inode와 같은 커널 데이터 구조
    • TCP 소켓 버퍼
  • I/O 컨트롤러가 I/O 리소스 배분을 제한합니다.
  • RDMA(Remote Direct Memory Access) 컨트롤러는 특정 프로세스가 사용할 수 있는 RDMA/IB 특정 리소스를 제한합니다. 이러한 프로세스는 RDMA 컨트롤러를 통해 그룹화됩니다.
  • 프로세스 번호 컨트롤러를 사용하면 제어 그룹에서 특정 제한 후 새 작업이 fork()'d 또는 clone()'d가 아닌 새 작업을 중지할 수 있습니다.
  • writeback 컨트롤러는 I/O와 메모리 컨트롤러 간의 충돌의 균형을 유지하는 메커니즘 역할을 합니다.

위의 정보는 cgroups-v2 온라인 설명서 를 기반으로 합니다. 동일한 링크를 참조하여 특정 제어 그룹 v2 컨트롤러에 대한 자세한 정보를 얻을 수 있습니다.

10.2. 메모리 관리

10.2.1. 64비트 ARM용 52비트 PA 사용 가능

이번 업데이트에서는 64비트 ARM 아키텍처용 52비트 물리적 주소 지정(PA)을 사용할 수 있습니다. 이는 이전 48비트 PA보다 더 큰 물리적 주소 공간을 제공합니다.

10.2.2. 5 레벨 페이지 테이블 x86_64

RHEL 7에서 기존 메모리 버스에는 48/46비트의 가상/실제 메모리 주소 지정 용량이 있으며 Linux 커널은 이러한 가상 주소를 물리적 주소로 관리하기 위해 4 레벨의 페이지 테이블을 구현했습니다. 물리적 버스 주소 지정 라인은 물리적 메모리 제한 용량을 64TB로 설정합니다.

이러한 제한은 128 PiB의 가상 주소 공간(64PB 사용자/64PB 커널) 및 4PB의 물리적 메모리 용량을 사용하여 57/52 비트의 가상/실제 메모리 주소 지정으로 확장되었습니다.

확장된 주소 범위를 사용하면 RHEL 8의 메모리 관리에서 5 레벨 페이지 테이블 구현을 지원합니다. 이 구현은 확장 된 주소 범위를 최대 128 PiB의 가상 주소 공간과 4 PiB의 물리적 주소 공간으로 처리할 수 있습니다.

설치된 실제 메모리가 64TiB 미만인 경우에도 이 기능을 지원하는 하드웨어에 대해 5단계 페이지 테이블이 기본적으로 활성화되어 있습니다. 64TiB 미만의 메모리가 있는 시스템의 경우 5 레벨 페이지 테이블을 이동할 때 약간의 오버헤드가 증가합니다. 이러한 오버헤드를 방지하기 위해 사용자는 no5lvl 커널 명령줄 매개 변수를 사용하여 4 레벨 페이지 테이블을 강제로 사용하여 5 레벨 페이지 테이블을 비활성화할 수 있습니다.

10.3. 성능 분석 및 관찰 도구

10.3.1. 커널에 bpftool 추가

eBPF(extended Berkeley Packet Filtering)를 기반으로 프로그램과 맵의 검사 및 단순 조작에 사용하는 bpftool 유틸리티가 Linux 커널에 추가되었습니다. bpftool은 커널 소스 트리의 일부이며 kernel 패키지의 하위 패키지로 포함된 bpftool을 통해 제공됩니다.

10.3.2. eBPF를 기술 프리뷰로 이용 가능

eBPF(extended Berkeley Packet Filtering) 기능은 네트워킹 및 추적 모두에 대한 기술 프리뷰로 사용할 수 있습니다. eBPF 를 사용하면 사용자 지정 프로그램을 다양한 포인트(소켓, 추적 포인트, 패킷 수신)에 연결하여 데이터를 수신할 수 있습니다. 이 기능에는 다양한 유형의 맵 생성을 지원하고 커널에 다양한 유형의 프로그램을 삽입할 수 있는 새로운 시스템 호출 bpf() 가 포함되어 있습니다. bpf() syscall은 루트 사용자와 같은 CAP_SYS_ADMIN 기능이 있는 사용자만 사용할 수 있습니다. 자세한 내용은 bpf(2) man 페이지를 참조하십시오.

10.3.3. BCC를 기술 프리뷰로 이용 가능

BCC(BPF Compiler Collection) 는 RHEL 8에서 기술 프리뷰로 사용 가능한 효율적인 커널 추적 및 조작 프로그램을 생성하기 위한 사용자 공간 툴 키트입니다. BCCeBPF(extended Berkeley Packet Filtering)를 사용하여 Linux 운영 체제의 I/O 분석, 네트워킹 및 모니터링을 위한 툴을 제공합니다.

10.4. 부팅 프로세스

10.4.1. RHEL에서 사용자 정의 커널을 설치 및 부팅하는 방법

BLS(Boot Loader Specification)는 드롭인 디렉터리의 각 부팅 옵션에 대한 부트로더 구성을 관리할 체계 및 파일 형식을 정의합니다. 개별 드롭인 구성 파일을 조작할 필요가 없습니다. 모든 아키텍처가 동일한 부트로더를 사용하지 않기 때문에 이 온프레미스는 RHEL 8에서 특히 관련이 있습니다.

  • 공개 펌웨어가 있는 x86_64,aarch64ppc64leGRUB2를 사용합니다.
  • Open Power Abstraction Layer (OPAL)와 함께 ppc64lePetitboot를 사용합니다.
  • s390xzipl을 사용합니다.

각 부트로더에는 새 커널을 설치하거나 제거할 때 수정해야 하는 다른 구성 파일과 형식이 있습니다. 이전 버전의 RHEL에서 이 작업을 허용하는 구성 요소는 grubby 유틸리티였습니다. 그러나 RHEL 8의 경우 grubby 가 BLS 작업 관련 씬 래퍼로 작동하는 BLS 파일 형식을 구현하여 부트로더 구성이 표준화되었습니다.

10.4.2. RHEL의 early kdump 지원

이전에는 kdump 서비스가 부팅 프로세스의 초기 단계에서 발생한 커널 충돌을 등록하기 위해 너무 늦게 시작되었습니다. 결과적으로 충돌 정보를 함께 문제 해결의 가능성이 손실되었습니다.

이 문제를 해결하기 위해 RHEL 8에서는 early kdump 지원을 도입했습니다. 이 메커니즘에 대한 자세한 내용은 /usr/share/doc/kexec-tools/early-kdump-howto.txt 파일을 참조하십시오. early kdump 지원이란 무엇이며 어떻게 구성합니까?

11장. 하드웨어 지원

11.1. 제거된 하드웨어 지원

다음 장치 드라이버 및 어댑터는 RHEL 7에서 지원되지만 RHEL 8.0에서는 더 이상 사용할 수 없습니다.

11.1.1. 제거된 장치 드라이버

RHEL 8에서 다음 장치 드라이버에 대한 지원이 제거되었습니다.

  • 3w-9xxx
  • 3w-sas
  • aic79xx
  • aoE
  • arcmsr
  • ATA 드라이버:

    • acard-ahci
    • sata_mv
    • sata_nv
    • sata_promise
    • sata_qstor
    • sata_sil
    • sata_sil24
    • sata_sis
    • sata_svw
    • sata_sx4
    • sata_uli
    • sata_via
    • sata_vsc
  • bfa
  • cxgb3
  • cxgb3i
  • e1000
  • 기타 등등
  • hptiop
  • Initio
  • isci
  • iw_cxgb3
  • MPTbase - 이 드라이버는 가상화 사용 사례 및 개발자 전환을 위해 남아 있습니다. 그러나 이는 지원되지 않습니다.
  • mptctl
  • 이 드라이버는 가상화 사용 사례 및 개발자 전환을 위해 남아 있습니다. 그러나 이는 지원되지 않습니다.
  • Footscsih - 이 드라이버는 가상화 사용 사례와 개발자 전환이 용이한 위치에 남아 있습니다. 그러나 이는 지원되지 않습니다.
  • MPTspi - 이 드라이버는 가상화 사용 사례 및 쉬운 개발자 전환을 위해 남아 있습니다. 그러나 이는 지원되지 않습니다.
  • mthca
  • mtip32xx
  • mvsas
  • mvumi
  • OSD 드라이버:

    • OSD
    • libosd
  • osst
  • PATA 드라이버:

    • pata_acpi
    • pata_ali
    • pata_amd
    • pata_arasan_cf
    • pata_artop
    • pata_atiixp
    • pata_atp867x
    • pata_cmd64x
    • pata_cs5536
    • pata_hpt366
    • pata_hpt37x
    • pata_hpt3x2n
    • pata_hpt3x3
    • pata_it8213
    • pata_it821x
    • pata_jmicron
    • pata_marvell
    • pata_netcell
    • pata_ninja32
    • pata_oldpiix
    • pata_pdc2027x
    • pata_pdc202xx_old
    • pata_piccolo
    • pata_rdc
    • pata_sch
    • pata_serverworks
    • pata_sil680
    • pata_sis
    • pata_via
    • pdc_adma
  • pm80xx(pm8001)
  • pmcraid
  • qla3xxx - 이 드라이버는 가상화 사용 사례와 개발자 전환이 용이한 위치에 남아 있습니다. 그러나 이는 지원되지 않습니다.
  • qlcnic
  • qlge
  • stex
  • sx8
  • tulip
  • ufshcd
  • 무선 드라이버:

    • carl9170
    • iwl4965
    • iwl3945
    • mwl8k
    • rt73usb
    • rt61pci
    • rtl8187
    • wil6210

11.1.2. 제거된 어댑터

아래에 나열된 어댑터에 대한 지원은 RHEL 8에서 제거되었습니다. 언급된 드라이버의 나열된 어댑터 이외의 지원은 변경되지 않은 상태로 유지됩니다.

PCI ID는 vendor:device:subvendor:subdevice 의 형식입니다. subdevice 또는 subvendor:subdevice 항목이 나열되지 않은 경우 이러한 누락된 항목의 값이 있는 장치가 제거되었습니다.

시스템에서 하드웨어의 PCI ID를 확인하려면 lspci -nn 명령을 실행합니다.

  • Aacraid 드라이버에서 다음 어댑터가 제거되었습니다.

    • PERC 2/Si (Iguana/PERC2Si), PCI ID 0x1028:0x0001:0x1028:0x0001
    • PERC 3/Di (Opal/PERC3Di), PCI ID 0x1028:0x0002:0x1028:0x0002
    • PERC 3/Si (SlimFast/PERC3Si), PCI ID 0x1028:0x0003:0x1028:0x0003
    • PERC 3/Di (Iguana FlipChip/PERC3DiF), PCI ID 0x1028:0x0004:0x1028:0x00d0
    • PERC 3/Di (Viper/PERC3DiV), PCI ID 0x1028:0x0002:0x1028:0x00d1
    • PERC 3/Di (Lexus/PERC3DiL), PCI ID 0x1028:0x0002:0x1028:0x00d9
    • PERC 3/Di (Jaguar/PERC3DiJ), PCI ID 0x1028:0x000a:0x1028:0x0106
    • PERC 3/Di (Dagger/PERC3DiD), PCI ID 0x1028:0x000a:0x1028:0x011b
    • PERC 3/Di (PERC3DiB), PCI ID 0x1028:0x000a:0x1028:0x0121
    • catapult, PCI ID 0x9005:0x0283:0x9005:0x0283
    • Tomcat, PCI ID 0x9005:0x0284:0x9005:0x0284
    • Adaptec 2120S(Crusader), PCI ID 0x9005:0x0285:0x9005:0x0286
    • Adaptec 2200S(Vulcan), PCI ID 0x9005:0x0285:0x9005:0x0285
    • Adaptec 2200S(Vulcan-2m), PCI ID 0x9005:0x0285:0x9005:0x0287
    • 역주 S220(Legend Crusader), PCI ID 0x9005:0x0285:0x17aa:0x0286
    • Equaend Vulcan, PCI ID 0x9005:0x0285:0x17aa:0x0287
    • Adaptec 3230S(Harrier), PCI ID 0x9005:0x0285:0x9005:0x0288
    • Adaptec 3240S(Tornado), PCI ID 0x9005:0x0285:0x9005:0x0289
    • ASR-2020ZCR SCSI PCI-X ZCR (Skyhawk), PCI ID 0x9005:0x0285:0x9005:0x028a
    • ASR-2025ZCR SCSI SO-DIMM PCI-X ZCR(Terminator), PCI ID 0x9005:0x0285:0x9005:0x028b
    • ASR-2230S + ASR-2230SLP PCI-X (Lancer), PCI ID 0x9005:0x0286:0x9005:0x028c
    • ASR-2130S(Lancer), PCI ID 0x9005:0x0286:0x9005:0x028d
    • AAR-2820SA (Intruder), PCI ID 0x9005:0x0286:0x9005:0x029b
    • AAR-2620SA (Intruder), PCI ID 0x9005:0x0286:0x9005:0x029c
    • AAR-2420SA (Intruder), PCI ID 0x9005:0x0286:0x9005:0x029d
    • ICP9024RO(Lancer), PCI ID 0x9005:0x0286:0x9005:0x029e
    • ICP9014RO(Lancer), PCI ID 0x9005:0x0286:0x9005:0x029f
    • ICP9047MA (Lancer), PCI ID 0x9005:0x0286:0x9005:0x02a0
    • ICP9087MA (Lancer), PCI ID 0x9005:0x0286:0x9005:0x02a1
    • ICP5445AU (Hurricane44), PCI ID 0x9005:0x0286:0x9005:0x02a3
    • ICP9085LI (Marauder-X), PCI ID 0x9005:0x0285:0x9005:0x02a4
    • ICP5085BR (Marauder-E), PCI ID 0x9005:0x0285:0x9005:0x02a5
    • ICP9067MA (Intruder-6), PCI ID 0x9005:0x0286:0x9005:0x02a6
    • Themisto Jupiter Platform, PCI ID 0x9005:0x0287:0x9005:0x00800
    • Themisto Jupiter Platform, PCI ID 0x9005:0x0200:0x9005:0x0200
    • callisto Jupiter Platform, PCI ID 0x9005:0x0286:0x9005:0x00800
    • ASR-2020SA SATA PCI-X ZCR (Skyhawk), PCI ID 0x9005:0x0285:0x9005:0x028e
    • ASR-2025SA SATA SO-DIMM PCI-X ZCR (Terminator), PCI ID 0x9005:0x9005:0x9005:0x028f
    • AAR-2410SA PCI SATA 4ch (Jaguar II), PCI ID 0x9005:0x9005:0x9005:0x0290
    • CERC SATA RAID 2 PCI SATA 6ch (DellCorsair), PCI ID 0x9005:0x0285:0x9005:0x0291
    • AAR-2810SA PCI SATA 8ch (Corsair-8), PCI ID 0x9005:0x0285:0x9005:0x0292
    • AAR-21610SA PCI SATA 16ch (Corsair-16), PCI ID 0x9005:0x0285:0x9005:0x0293
    • ESD SO-DIMM PCI-X SATA ZCR (Prowler), PCI ID 0x9005:0x9005:0x9005:0x0294
    • AAR-2610SA PCI SATA 6ch, PCI ID 0x9005:0x0285:0x103C:0x3227
    • ASR-2240S(SabreExpress), PCI ID 0x9005:0x0285:0x9005:0x0296
    • ASR-4005, PCI ID 0x9005:0x0285:0x9005:0x0297
    • IBM 8i (AvonPark), PCI ID 0x9005:0x0285:0x1014:0x02F2
    • IBM 8i (AvonPark Lite), PCI ID 0x9005:0x0285:0x1014:0x0312
    • IBM 8k/8k-l8 (Aurora), PCI ID 0x9005:0x0286:0x1014:0x9580
    • IBM 8k/8k-l4 (Aurora Lite), PCI ID 0x9005:0x0286:0x1014:0x9540
    • ASR-4000(BlackBird), PCI ID 0x9005:0x0285:0x9005:0x0298
    • ASR-4800SAS (Marauder-X), PCI ID 0x9005:0x0285:0x9005:0x0299
    • ASR-4805SAS (Marauder-E), PCI ID 0x9005:0x0285:0x9005:0x029a
    • ASR-3800(Hurricane44), PCI ID 0x9005:0x0286:0x9005:0x02a2
    • Perc 320/DC, PCI ID 0x9005:0x0285:0x1028:0x0287
    • Adaptec 5400S(Mustang), PCI ID 0x1011:0x0046:0x9005:0x0365
    • Adaptec 5400S(Mustang), PCI ID 0x1011:0x0046:0x9005:0x0364
    • Dell PERC2/QC, PCI ID 0x1011:0x0046:0x9005:0x1364
    • HP NetRAID-4M, PCI ID 0x1011:0x0046:0x103c:0x10c2
    • Dell Catchall, PCI ID 0x9005:0x0285:0x1028
    • 일외선 Catchall, PCI ID 0x9005:0x0285:0x17aa
    • Adaptec Catch All, PCI ID 0x9005:0x0285
    • Adaptecet Catch All, PCI ID 0x9005:0x0286
    • Adaptec NEMER/ARK Catch All, PCI ID 0x9005:0x0288
  • mlx4_core 드라이버에서 다음 Mellanox Gen2 및 ConnectX-2 어댑터가 제거되었습니다.

    • PCI ID 0x15B3:0x1002
    • PCI ID 0x15B3:0x676E
    • PCI ID 0x15B3:0x6746
    • PCI ID 0x15B3:0x6764
    • PCI ID 0x15B3:0x675A
    • PCI ID 0x15B3:0x6372
    • PCI ID 0x15B3:0x6750
    • PCI ID 0x15B3:0x6368
    • PCI ID 0x15B3:0x673C
    • PCI ID 0x15B3:0x6732
    • PCI ID 0x15B3:0x6354
    • PCI ID 0x15B3:0x634A
    • PCI ID 0x15B3:0x6340
  • MPt2sas 드라이버에서 다음 어댑터가 제거되었습니다.

    • SAS2004, PCI ID 0x1000:0x0070
    • SAS2008, PCI ID 0x1000:0x0072
    • SAS2108_1, PCI ID 0x1000:0x0074
    • SAS2108_2, PCI ID 0x1000:0x0076
    • SAS2108_3, PCI ID 0x1000:0x0077
    • SAS2116_1, PCI ID 0x1000:0x0064
    • SAS2116_2, PCI ID 0x1000:0x0065
    • SSS6200, PCI ID 0x1000:0x007E
  • megaraid_sas 드라이버에서 다음 어댑터가 제거되었습니다.

    • Dell PERC5, PCI ID 0x1028:0x0015
    • SAS1078R, PCI ID 0x1000:0x0060
    • SAS1078DE, PCI ID 0x1000:0x007C
    • SAS1064R, PCI ID 0x1000:0x0411
    • VERDE_ZCR, PCI ID 0x1000:0x0413
    • SAS1078GEN2, PCI ID 0x1000:0x0078
    • SAS0079GEN2, PCI ID 0x1000:0x0079
    • SAS0073SKINNY, PCI ID 0x1000:0x0073
    • SAS0071SKINNY, PCI ID 0x1000:0x0071
  • qla2xxx 드라이버에서 다음 어댑터가 제거되었습니다.

    • ISP24xx, PCI ID 0x1077:0x2422
    • ISP24xx, PCI ID 0x1077:0x2432
    • ISP2422, PCI ID 0x1077:0x5422
    • QLE220, PCI ID 0x1077:0x5432
    • QLE81xx, PCI ID 0x1077:0x8001
    • QLE10000, PCI ID 0x1077:0xF000
    • QLE84xx, PCI ID 0x1077:0x8044
    • QLE8000, PCI ID 0x1077:0x8432
    • QLE82xx, PCI ID 0x1077:0x8021
  • qla4xxx 드라이버에서 다음 어댑터가 제거되었습니다.

    • QLOGIC_ISP8022, PCI ID 0x1077:0x8022
    • QLOGIC_ISP8324, PCI ID 0x1077:0x8032
    • QLOGIC_ISP8042, PCI ID 0x1077:0x8042
  • be2iscsi 드라이버에서 다음 어댑터가 제거되었습니다.

    • BladeEngine 2 (BE2) 장치

      • BladeEngine2 10Gb iSCSI Initiator (generic), PCI ID 0x19a2:0x212
      • OneConnect OCe10101, OCm10101, OCe10102, OCm10102 BE2 어댑터 제품군, PCI ID 0x19a2:0x702
      • OCe10100 BE2 어댑터 제품군, PCI ID 0x19a2:0x703
    • BladeEngine 3 (BE3) 장치

      • OneConnect TOMCAT iSCSI, PCI ID 0x19a2:0x0712
      • BladeEngine3 iSCSI, PCI ID 0x19a2:0x0222
  • be2net 드라이버에서 제어하는 다음 이더넷 어댑터가 제거되었습니다.

    • BladeEngine 2 (BE2) 장치

      • OneConnect TIGERSHARK NIC, PCI ID 0x19a2:0x0700
      • BladeEngine2 Network Adapter, PCI ID 0x19a2:0x0211
    • BladeEngine 3 (BE3) 장치

      • OneConnect TOMCAT NIC, PCI ID 0x19a2:0x0710
      • BladeEngine3 Network Adapter, PCI ID 0x19a2:0x0221
  • lpfc 드라이버에서 다음 어댑터가 제거되었습니다.

    • BladeEngine 2 (BE2) 장치

      • OneConnect TIGERSHARK FCoE, PCI ID 0x19a2:0x0704
    • BladeEngine 3 (BE3) 장치

      • OneConnect TOMCAT FCoE, PCI ID 0x19a2:0x0714
    • 파이버 채널(FC) 장치

      • FIREFLY, PCI ID 0x10df:0x1ae5
      • PROTEUS_VF, PCI ID 0x10df:0xe100
      • BALIUS, PCI ID 0x10df:0xe131
      • PROTEUS_PF, PCI ID 0x10df:0xe180
      • RFLY, PCI ID 0x10df:0xf095
      • PFLY, PCI ID 0x10df:0xf098
      • LP101, PCI ID 0x10df:0xf0a1
      • TFLY, PCI ID 0x10df:0xf0a5
      • BSMB, PCI ID 0x10df:0xf0d1
      • BMID, PCI ID 0x10df:0xf0d5
      • ZSMB, PCI ID 0x10df:0xf0e1
      • ZMID, PCI ID 0x10df:0xf0e5
      • NEPTUNE, PCI ID 0x10df:0xf0f5
      • NEPTUNE_SCSP, PCI ID 0x10df:0xf0f6
      • NEPTUNE_DCSP, PCI ID 0x10df:0xf0f7
      • FALCON, PCI ID 0x10df:0xf180
      • SUPERFLY, PCI ID 0x10df:0xf700
      • DRAGONFLY, PCI ID 0x10df:0xf800
      • CENTAUR, PCI ID 0x10df:0xf900
      • PEGASUS, PCI ID 0x10df:0xf980
      • THOR, PCI ID 0x10df:0xfa00
      • VIPER, PCI ID 0x10df:0xfb00
      • LP10000S, PCI ID 0x10df:0xfc00
      • LP11000S, PCI ID 0x10df:0xfc10
      • LPE11000S, PCI ID 0x10df:0xfc20
      • PROTEUS_S, PCI ID 0x10df:0xfc50
      • HELIOS, PCI ID 0x10df:0xfd00
      • HELIOS_SCSP, PCI ID 0x10df:0xfd11
      • HELIOS_DCSP, PCI ID 0x10df:0xfd12
      • ZEPHYR, PCI ID 0x10df:0xfe00
      • HORNET, PCI ID 0x10df:0xfe05
      • ZEPHYR_SCSP, PCI ID 0x10df:0xfe11
      • ZEPHYR_DCSP, PCI ID 0x10df:0xfe12
    • Lancer FCoE CNA 장치

      • OCe15104-FM, PCI ID 0x10df:0xe260
      • OCe15102-FM, PCI ID 0x10df:0xe260
      • OCm15108-F-P, PCI ID 0x10df:0xe260

11.1.3. 제거된 다른 하드웨어 지원

11.1.3.1. AGP 그래픽 카드는 더 이상 지원되지 않습니다.

Accelerated Graphics Port (AGP) 버스를 사용하는 그래픽 카드는 Red Hat Enterprise Linux 8에서 지원되지 않습니다. 권장되는 교체로 PCI Express 버스와 함께 그래픽 카드를 사용하십시오.

11.1.3.2. FCoE 소프트웨어 제거

파이버 채널 over Ethernet(FCoE) 소프트웨어가 Red Hat Enterprise Linux 8에서 제거되었습니다. 특히, fcoe.ko 커널 모듈은 더 이상 이더넷 어댑터 및 드라이버를 통해 소프트웨어 FCoE 인터페이스를 생성할 수 없습니다. 이러한 변화는 소프트웨어 관리 FCoE에 대한 업계 채택이 부족하기 때문입니다.

Red Hat Enterprise 8의 특정 변경 사항은 다음과 같습니다.

  • fcoe.ko 커널 모듈을 더 이상 사용할 수 없습니다. 이를 통해 Data Center Bridging이 활성화된 이더넷 어댑터 및 드라이버를 사용하여 소프트웨어 FCoE에 대한 지원이 제거되었습니다.
  • lldpad 를 사용하여 DCBX(Data Center Bridging eXchange)를 통한 링크 수준 소프트웨어 구성은 FCoE에서 더 이상 지원되지 않습니다.

    • fcoe-utils 툴(특히 fcoemon)은 기본적으로 DCB 구성의 유효성을 검사하거나 lldpad 와 통신하도록 구성됩니다.
    • fcoemonlldpad 통합이 영구적으로 비활성화될 수 있습니다.
  • libhbaapilibhbalinux 라이브러리는 더 이상 fcoe-utils 에서 사용되지 않으며 Red Hat에서 직접 테스트하지 않습니다.

다음 사항에 대한 지원은 변경되지 않고 유지됩니다.

  • 현재 지원되는 FCoE 어댑터는 운영 체제에 파이버 채널 어댑터로 표시되고 별도의 노트에 명시된 경우를 제외하고 fcoe-utils 관리 도구를 사용하지 않습니다. lpfc FC 드라이버에서 지원하는 일부 어댑터에 적용됩니다. bfa 드라이버는 Red Hat Enterprise Linux 8에 포함되어 있지 않습니다.
  • 현재 fcoe-utils 관리 도구를 사용하는 FCoE 어댑터 오프로드를 지원하지만 별도의 노트에 명시하지 않는 한 fcoe.ko 대신 fcoe.ko 및/또는 펌웨어의 DCBX 구성을 관리할 수 있습니다. fnic,bnx2fc, qedf 드라이버는 Red Hat Enterprise Linux 8에서 계속 완전하게 지원됩니다.
  • 이전 문에서 다루는 일부 지원되는 드라이버에 필요한 libfc.kolibfcoe.ko 커널 모듈입니다.

자세한 내용은 Software FCoE 및 Fibre Channel이 더 이상 대상 모드를 지원하지 않음을 참조하십시오.

11.1.3.3. RHEL 8에서는 e1000 네트워크 드라이버가 지원되지 않습니다.

Red Hat Enterprise Linux 8에서는 e1000 네트워크 드라이버가 지원되지 않습니다. 이는 베어 메탈 및 가상 환경에 영향을 미칩니다. 그러나 최신 e1000e 네트워크 드라이버는 RHEL 8에서 계속 완전히 지원됩니다.

11.1.3.4. RHEL 8에서는 tulip 드라이버를 지원하지 않습니다.

이번 업데이트에서는 tulip 네트워크 드라이버가 더 이상 지원되지 않습니다. 결과적으로 Microsoft Hyper-V 하이퍼바이저의 1세대 VM(가상 머신)에서 RHEL 8을 사용할 때 " legacy Network Adapter" 장치가 작동하지 않으므로 이러한 VM의 PXE 설치가 실패합니다.

PXE 설치가 작동하려면 세대 2 Hyper-V VM에 RHEL 8을 설치합니다. RHEL 8 생성 1 VM이 필요한 경우 ISO 설치를 사용하십시오.

11.1.3.5. qla2xxx 드라이버는 더 이상 대상 모드를 지원하지 않습니다.

qla2xxx QLogic Fibre Channel 드라이버를 사용한 대상 모드에 대한 지원이 비활성화되어 있습니다. 이러한 변경의 영향은 다음과 같습니다.

  • 커널은 더 이상 tcm_qla2xxx 모듈을 제공하지 않습니다.
  • rtslib 라이브러리 및 rootfs 유틸리티는 이상 qla2xxx 를 지원하지 않습니다.

qla2xxx 를 사용한 이니시에이터 모드는 계속 지원됩니다.

12장. 파일 시스템 및 스토리지

12.1. 파일 시스템

12.1.1. vGPU가 제거되었습니다.

Red Hat Enterprise Linux 8에서 RuntimeClass 파일 시스템이 제거되었습니다. 여기에는 다음 구성 요소가 포함됩니다.

  • btrfs.ko 커널 모듈
  • btrfs-progs 패키지
  • snapper 패키지

Red Hat Enterprise Linux 8의 vGPU 파일 시스템에 더 이상 생성, 마운트 또는 설치할 수 없습니다. Anaconda 설치 프로그램 및 Kickstart 명령은 더 이상 vGPU를 지원하지 않습니다.

12.1.2. XFS는 공유 COW(Copy-On-Write) 데이터 Extent 기능 지원

XFS 파일 시스템은 공유 copy-on-write(COW) 데이터Extent 기능을 지원합니다. 이 기능을 사용하면 두 개 이상의 파일이 공통 데이터 블록 집합을 공유할 수 있습니다. 공통 블록을 공유하는 파일 중 하나가 변경되면 XFS는 링크를 공통 블록으로 분리하고 새 파일을 만듭니다. 이는 다른 파일 시스템에 있는 COW(Copy-On-Write) 기능과 유사합니다.

공유 COW(Copy-On-Write) 데이터 Extent 특징은 다음과 같습니다.

신속 (Fast)
공유 복사본 생성 시 디스크 I/O를 사용하지 않습니다.
공간 효율적 (Space-efficient)
공유 블록이 추가 디스크 공간을 소비하지 않습니다.
투명 (Transparent)
공통 블록을 공유하는 파일은 일반 파일과 동일하게 작동합니다.

사용자 공간 유틸리티는 다음과 같은 목적으로 공유 COW(Copy-On-Write) 데이터 Extent를 사용할 수 있습니다.

  • 효율적인 파일 복제(예: cp --reflink 명령)
  • 파일 별 스냅샷

이 기능은 보다 더욱 효율적인 운영을 위해 Overlayfs 및 NFS와 같은 커널 하위 시스템에서도 사용됩니다.

공유 COW(Copy-On-Write) 데이터 Extent는 xfsprogs 패키지 버전 4.17.0-2.el8 이상에서 XFS 파일 시스템을 만들 때 기본적으로 활성화됩니다.

현재 Direct Access(DAX) 장치는 공유 COW(Copy-On-Write) 데이터 Extent가 있는 XFS를 지원하지 않습니다. 이 기능을 사용하지 않고 XFS 파일 시스템을 만들려면 다음 명령을 사용하십시오.

# mkfs.xfs -m reflink=0 block-device

Red Hat Enterprise Linux 7은 읽기 전용 모드에서만 공유 COW(Copy-On-Write) 데이터 Extent로 XFS 파일 시스템을 마운트할 수 있습니다.

12.1.3. ext4 파일 시스템에서 메타데이터 체크섬 지원

이번 업데이트를 통해 ext4 메타데이터는 체크섬으로 보호됩니다. 이를 통해 파일 시스템에서 손상된 메타데이터를 인식하여 손상을 방지하고 파일 시스템 복원력을 높일 수 있습니다.

12.1.4. /etc/sysconfig/nfs 파일 및 레거시 NFS 서비스 이름을 더 이상 사용할 수 없습니다.

Red Hat Enterprise Linux 8.0에서 NFS 구성은 Red Hat Enterprise Linux 7에서 /etc/nfs.conf 로 사용된 /etc/sysconfig/nfs 구성 파일에서 이동했습니다.

/etc/nfs.conf 파일은 다른 구문을 사용합니다. Red Hat Enterprise Linux 8은 Red Hat Enterprise Linux 7에서 업그레이드할 때 모든 옵션을 /etc/sysconfig/nfs.conf에서 /etc/nfs.conf 로 자동 변환합니다.

두 구성 파일은 모두 Red Hat Enterprise Linux 7에서 지원됩니다. 새 /etc/nfs.conf 파일을 사용하여 자동화된 구성 시스템과 호환되는 모든 Red Hat Enterprise Linux 버전에서 NFS를 구성하는 것이 좋습니다.

또한 다음 NFS 서비스 별칭이 제거되어 업스트림 이름으로 교체되었습니다.

  • nfs.service, nfs-server.service로 교체
  • NFS-secure.service. service로 대체됨.service
  • RuntimeClass -gssd.service 로 교체
  • nfs-idmap.servicenfs-idmapd.service로 교체
  • nfs- idmapd.service 로 교체
  • nfs-lock.service, replaced by rpc-statd.service
  • nfslock.service. com으로 대체되었습니다.

12.2. 스토리지

12.2.1. BOOM 부팅 관리자가 부팅 항목을 생성하는 과정을 단순화

BOOM은 부팅 항목 설정을 위해 BootLoader Specification을 지원하는 부팅 로더를 사용하는 Linux 시스템용 부팅 관리자입니다. 유연한 부팅 설정이 가능하며 LVM을 사용하여 생성된 시스템의 스냅샷 이미지를 부팅하는 것과 같이 새롭거나 수정된 부팅 항목을 간단하게 만들 수 있습니다.

BOOM은 기존 부팅 로더 구성을 변경하지 않고 추가 항목만 삽입합니다. 기존 설정이 유지되며 커널 설치 및 업데이트 스크립트와 같은 배포 통합은 이전처럼 계속 작동합니다.

BOOM에는 부팅 항목을 쉽게 생성할 수 있는 CLI(Command-Line Interface) 및 API가 있습니다.

12.2.2. Stratis 사용 가능

Stratis는 새로운 로컬 스토리지 관리자입니다. 또한 사용자에게 추가 기능을 사용하여 스토리지 풀 상단에 관리형 파일 시스템을 제공합니다.

Stratis를 사용하면 다음과 같은 스토리지 작업을 보다 쉽게 수행할 수 있습니다.

  • 스냅샷 및 씬 프로비저닝 관리
  • 필요에 따라 파일 시스템 크기 자동 확장
  • 파일 시스템 관리

Stratis 스토리지를 관리하려면 stratisd 백그라운드 서비스와 통신하는 stratis 유틸리티를 사용합니다.

Stratis는 기술 프리뷰로 제공됩니다.

자세한 내용은 Stratis 설명서를 참조하십시오. Stratis 파일 시스템 설정.

12.2.3. LUKS2는 볼륨 암호화를 위한 기본 형식

RHEL 8에서는 LUKS 버전 2(LUKS2) 형식이 기존 LUKS(LUKS1) 형식 대신 사용됩니다. 이제 dm-crypt 하위 시스템과 cryptsetup 툴은 LUKS2를 암호화된 볼륨의 기본 형식으로 사용합니다. LUKS2는 부분적인 메타데이터 손상 이벤트가 발생했을 경우에 대비하여 메타데이터 중복 및 자동 복구 기능을 갖춘 암호화된 볼륨을 제공합니다.

내부 유연한 레이아웃으로 인해 LUKS2도 향후 기능을 사용할 수 있습니다. libcryptsetup 에 빌드된 일반 커널 키 링 토큰을 통해 자동 잠금을 지원하므로 사용자가 커널 키링 보존 서비스에 저장된 암호를 사용하여 LUKS2 볼륨의 잠금을 해제할 수 있습니다.

기타 주요 기능 개선 사항:

  • 랩된 키 암호화 스키마 사용하여 보안키 설정
  • 정책 기반 암호 해독(Clevis)과 보다 쉽게 통합
  • 최대 32개의 키 슬롯 - LUKS1은 8개의 키 슬롯만 제공

자세한 내용은 cryptsetup(8)cryptsetup-reencrypt(8) 매뉴얼 페이지를 참조하십시오.

12.2.4. 블록 장치의 멀티 큐 스케줄링

Red Hat Enterprise Linux 8에서 블록 장치는 Multi-Queue 스케줄링을 사용합니다. 이를 통해 솔리드 스테이트 드라이브(SSD) 및 멀티 코어 시스템으로 블록 계층 성능을 확장할 수 있습니다.

SCSI Multiqueue (scsi-mq) 드라이버가 기본적으로 활성화되고 커널은 scsi_mod.use_blk_mq=Y 옵션으로 부팅됩니다. 이러한 변화는 업스트림 Linux 커널과 일치합니다.

DM Multipath(Device Mapper Multipath)를 활성화하려면 scsi-mq 드라이버가 필요합니다.

12.2.5. 모든 아키텍처를 지원하는 VDO

VDO(Virtual Data Optimizer)는 RHEL 8이 지원하는 모든 아키텍처에서 사용할 수 있습니다.

12.2.6. VDO는 더 이상 읽기 캐시를 지원하지 않습니다.

VDO(Virtual Data Optimizer)에서 읽기 캐시 기능이 제거되었습니다. 읽기 캐시는 VDO 볼륨에서 항상 비활성화되어 있으며 RuntimeClass 유틸리티의 --readCache 옵션을 사용하여 더 이상 활성화할 수 없습니다.

Red Hat은 다른 구현을 사용하여 이후 Red Hat Enterprise Linux 릴리스에서 VDO 읽기 캐시를 다시 소개할 수 있습니다.

12.2.7. dmraid 패키지가 제거되었습니다.

dmraid 패키지는 Red Hat Enterprise Linux 8에서 제거되었습니다. 결합된 하드웨어 및 소프트웨어 RAID 호스트 버스 어댑터(HBA)를 지원하는 사용자는 네이티브 MD 소프트웨어 RAID, SNIA RAID DDF(Common Disk Data Format) 및 Intel® Matrix Storage Manager(IMSM) 형식을 지원하는 mdadm 유틸리티를 사용해야 합니다.

12.2.8. 소프트웨어 FCoE 및 Fibre Channel은 더 이상 대상 모드를 지원하지 않습니다.

  • Software FCoE: NIC 소프트웨어 FCoE 대상 기능은 Red Hat Enterprise Linux 8.0에서 제거됩니다.
  • 파이버 채널은 더 이상 대상 모드를 지원하지 않습니다. Red Hat Enterprise Linux 8.0에서 qla2xxx QLogic Fibre Channel 드라이버에 대해 대상 모드가 비활성화됩니다.

자세한 내용은 FCoE 소프트웨어 제거를 참조하십시오.

12.2.9. DM Multipath의 경계 경로 검색 개선

multipathd 서비스의 경계 경로 검색이 개선되었습니다. 이는 멀티패스 장치가 반복적으로 실패할 가능성이 있는 경로를 피하고 성능을 향상시킬 수 있습니다. 경계 경로는 지속적이지만 일시적인 I/O 오류가 있는 경로입니다.

/etc/multipath.conf 파일의 다음 옵션은 경계 경로 동작을 제어합니다.

  • marginal_path_double_failed_time
  • marginal_path_err_sample_time
  • marginal_path_err_rate_threshold
  • marginal_path_err_recheck_gap_time

DM Multipath는 다음과 같은 경우 경로를 비활성화하고 구성된 샘플 기간 동안 I/O를 반복 테스트합니다.

  • 나열된 multipath.conf 옵션으로 설정된 경우
  • 구성된 기간 내에 경로가 두 번 실패한 경우
  • 기타 경로를 사용할 수 있는 경우

테스트 중에 경로에 구성된 오류 비율보다 큰 오류 비율이 있는 경우 DM Multipath는 설정된 간격 시간 동안 이 비율을 무시한 다음 복원할 수 있을 정도로 제대로 작동하고 있는지 여부를 다시 확인합니다.

자세한 내용은 multipath.conf 매뉴얼 페이지를 참조하십시오.

12.2.10. DM Multipath 설정 파일의 새로운 overrides 섹션 추가

/etc/multipath.conf 파일에는 모든 장치에 대한 구성 값을 설정할 수 있는 overrides 섹션이 포함되어 있습니다. DM Multipath는 장치를 포함하는 경로의 /etc/multipath.conf 파일에 있는 multipaths 섹션에서 지정한 속성으로 덮어쓰지 않는 한 모든 장치에 대해 이러한 속성을 사용합니다. 이 기능은 더 이상 지원되지 않는 구성 파일의 devices 섹션에 있는 all_devs 매개변수를 대체합니다.

12.2.11. Broadcom Emulex 및 Marvell Qlogic Fibre Channel 어댑터에서 NVMe/FC가 완전히 지원됩니다.

NVMe/FC(NVMe over Fibre Channel) 전송 유형은 NVMe를 지원하는 Broadcom Emulex 및 Marvell Qlogic Fibre Channel 32Gbit 어댑터와 함께 사용할 때 Initiator 모드에서 완전히 지원됩니다.

NVMe/FC(NVMe over Fibre Channel)는 Red Hat Enterprise Linux에서 이전에 도입된 RDMA(Remote Direct Memory Access) 프로토콜 외에도 NVMe(Nonvolatile Memory Express) 프로토콜을 위한 추가적인 패브릭 전송 유형입니다.

NVMe/FC 활성화:

  • lpfc 드라이버에서 NVMe/FC를 활성화하려면 /etc/modprobe.d/lpfc.conf 파일을 편집하고 다음 옵션을 추가합니다.

    lpfc_enable_fc4_type=3
  • qla2xxx 드라이버에서 NVMe/FC를 활성화하려면 /etc/modprobe.d/qla2xxx.conf 파일을 편집하고 다음 옵션을 추가합니다.

    qla2xxx.ql2xnvmeenable=1

추가 제한 사항:

  • NVMe/FC에서 NVMe 클러스터링이 지원되지 않습니다.
  • NVMe/FC에서 kdump가 지원되지 않습니다.
  • SAN(Storage Area Network)의 NVMe/FC에서 시스템 부팅이 지원되지 않습니다.

12.2.12. DIF/DIX(데이터 무결성 필드/데이터 무결성 확장) 지원

DIF/DIX가 SCSI 표준에 추가되었습니다. 지원 대상으로 특별히 나열된 항목을 제외하고는 모든 HBA 및 스토리지 배열의 경우 기술 프리뷰로 남아 있습니다.

DIF/DIX는 일반적으로 사용되는 512바이트 디스크 블록의 크기를 512에서 520바이트로 늘려 DIF(데이터 무결성 필드)를 추가합니다. DIF는 쓰기가 발생할 때 HBA(Host Bus Adapter)에 의해 계산된 데이터 블록의 체크섬 값을 저장합니다. 스토리지 장치는 수신 시 체크섬을 확인한 다음 데이터와 체크섬을 모두 저장합니다. 반대로, 읽기가 발생하면 스토리지 장치와 수신 HBA에서 체크섬을 확인할 수 있습니다.

12.2.13. libstoragetekton-netapp-plugin 이 제거되었습니다.

libStorageMgmt 라이브러리에서 사용하는 libstoragetekton-netapp-plugin 패키지가 제거되었습니다. 다음과 같은 이유로 더 이상 지원되지 않습니다.

  • 패키지에는 NetApp 7 모드 API가 필요하며 NetApp에 의해 단계적으로 제거되고 있습니다.
  • RHEL 8은 TLS_RSA_WITH_3DES_EDE_CBC_SHA 암호를 사용하여 TLSv1.0 프로토콜에 대한 기본 지원을 제거했으며, TLS와 함께 이 플러그인이 작동하지 않습니다.

12.2.14. sfdiskcfdisk에서 Cylinder-Head-Sector 주소 지정 제거

Cylinder-Head-Sector(CHS) 주소는 더 이상 최신 스토리지 장치에 유용하지 않습니다. sfdiskcfdisk 명령에서 옵션으로 제거되었습니다. RHEL 8 이후에는 다음 옵션을 사용할 수 없습니다.

  • -c, --cylinders 번호
  • -h, --heads 번호
  • -s, --sectors 번호

자세한 내용은 sfdisk(8)cfdisk(8) 매뉴얼 페이지를 참조하십시오.

12.3. LVM

12.3.1. 공유 스토리지 장치를 관리하기 위한 RuntimeClass 제거

공유 스토리지 장치를 관리하기 위해 LVM에서 더 이상 RuntimeClass(클러스터 lvm 데몬)를 사용하지 않습니다. 대신 LVM에서 lvmlockd (lvm 잠금 데몬)를 사용합니다.

  • lvmlockd 사용에 대한 자세한 내용은 lvmlockd(8) 매뉴얼 페이지를 참조하십시오. 일반적으로 공유 스토리지 사용에 대한 자세한 내용은 lvmsystemid(7) 도움말 페이지를 참조하십시오.
  • Pacemaker 클러스터에서 LVM을 사용하는 방법에 대한 자세한 내용은 LVM 활성화 리소스 에이전트의 도움말 화면을 참조하십시오.
  • Red Hat High Availability 클러스터에서 공유 논리 볼륨을 구성하는 절차의 예는 클러스터에서 GFS2 파일 시스템 구성을 참조하십시오.

12.3.2. lvmetad 데몬 제거

LVM에서 메타데이터 캐싱에 lvmetad 데몬을 더 이상 사용하지 않으며 항상 디스크에서 메타데이터를 읽습니다. LVM 디스크 읽기가 감소되어 캐싱의 이점을 줄일 수 있습니다.

이전에는 논리 볼륨의 자동 비활성화가 lvm.conf 구성 파일의 use_lvmetad 설정에 간접적으로 연결되었습니다. 자동 비활성화를 비활성화하는 올바른 방법은 lvm.conf 파일에서 auto_activation_volume_list 를 계속 설정합니다.

12.3.3. LVM에서는 더 이상 GFS 풀 볼륨 관리자 또는 lvm1 메타데이터 형식으로 포맷된 장치를 관리할 수 없습니다.

LVM은 더 이상 GFS 풀 볼륨 관리자 또는'lvm1의 메타데이터 형식으로 포맷된 장치를 관리할 수 없습니다. Red Hat Enterprise Linux 4가 도입되기 전에 논리 볼륨을 생성한 경우 이에 영향을 미칠 수 있습니다. lvm1 형식을 사용하는 볼륨 그룹은 lvm convert 명령을 사용하여 lvm2 형식으로 변환해야 합니다.

12.3.4. LVM 라이브러리 및 LVM Python 바인딩이 제거되었습니다.

lvm2-python-libs 패키지에서 제공한 lvm2app 라이브러리 및 LVM Python 바인딩이 제거되었습니다. 대신 다음 솔루션을 사용하는 것이 좋습니다.

  • lvm2-dbusd 서비스와 함께 LVM D-Bus API. 이를 위해서는 Python 버전 3을 사용해야 합니다.
  • JSON 포맷을 사용하는 LVM 명령줄 유틸리티입니다.이 포맷은 lvm2 패키지 버전 2.02.158 이후 사용할 수 있습니다.
  • C/C++용 AppStream에 포함된 libblockdev 라이브러리

Red Hat Enterprise Linux 8으로 업그레이드하기 전에 제거된 라이브러리 및 D-Bus API에 대한 바인딩을 사용하여 애플리케이션을 이식해야 합니다.

12.3.5. LVM 미러 로그를 미러링하는 기능이 제거되었습니다.

미러링된 LVM 볼륨의 미러링된 로그 기능이 제거되었습니다. RHEL(Red Hat Enterprise Linux) 8은 미러링된 미러 로그로 LVM 볼륨 생성 또는 활성화를 더 이상 지원하지 않습니다.

권장 교체 사항은 다음과 같습니다.

  • RAID1 LVM 볼륨. RAID1 볼륨의 주요 장점은 성능이 저하된 모드에서도 작동하고 일시적인 오류 후 복구할 수 있다는 것입니다.
  • 디스크 미러 로그. 미러링된 미러 로그를 디스크 미러 로그로 변환하려면 다음 명령을 사용하십시오. lvconvert --mirrorlog disk my_vg/my_lv.

13장. 고가용성 및 클러스터

Red Hat Enterprise Linux 8에서 pcs 는 클러스터 통신을 위해 Corosync 3 클러스터 엔진과 Kronosnet (knet) 네트워크 추상화 계층을 완벽하게 지원합니다. 기존 RHEL 7 클러스터에서 RHEL 8 클러스터로 업그레이드를 계획할 때 고려해야 할 몇 가지 고려 사항은 다음과 같습니다.

  • 애플리케이션 버전: RHEL 8 클러스터에 필요한 고가용성 애플리케이션의 버전은 무엇입니까?
  • 애플리케이션 프로세스 순서: 애플리케이션 시작 및 중지 프로세스 변경이 필요한 사항은 무엇입니까?
  • 클러스터 인프라: pcs 가 RHEL 8에서 여러 네트워크 연결을 지원하므로 클러스터 변경에 알려진 NIC 수가 있습니까?
  • 필요한 패키지: 새 클러스터에 동일한 패키지를 모두 설치해야 합니까?

RHEL 8에서 Pacemaker 클러스터 실행에 대한 고려 사항 및 기타 고려 사항으로 인해 RHEL 7에서 RHEL 8 클러스터로 인플레이스 업그레이드를 수행할 수 없으며 RHEL 8에서 새 클러스터를 구성해야 합니다. RHEL 7 및 RHEL 8을 둘 다 실행하는 노드가 포함된 클러스터를 실행할 수 없습니다.

또한 업그레이드를 수행하기 전에 다음을 계획해야합니다.

  • 최종 제거: 이전 클러스터에서 실행되는 애플리케이션을 중지하고 새 클러스터에서 애플리케이션을 시작하여 애플리케이션 다운타임을 줄이는 프로세스는 무엇입니까?
  • 테스트: 개발/테스트 환경에서 업그레이드 전략을 미리 테스트할 수 있습니까?

RHEL 7과 RHEL 8 간의 클러스터 생성 및 관리의 주요 차이점은 다음 섹션에 설명되어 있습니다.

13.1. pcs cluster setup, pcs cluster node addpcs cluster node remove 명령의 새로운 형식

Red Hat Enterprise Linux 8에서 pcs 는 이제 노드 이름 사용을 완전히 지원하며 노드 식별자에서 노드 주소를 교체해야 합니다. 노드 주소는 임의로 제공됩니다.

  • pcs host auth 명령에서 노드 주소는 기본적으로 노드 이름으로 설정됩니다.
  • pcs cluster setup 명령 및 pcs cluster node add 명령에서 노드 주소가 pcs host auth 명령에 지정된 노드 주소로 기본 설정됩니다.

이러한 변경으로 인해 클러스터 설정, 클러스터에 노드 추가, 클러스터에서 노드 제거를 위한 명령 형식이 변경되었습니다. 이러한 새로운 명령 형식에 대한 자세한 내용은 pcs cluster setup,pcs cluster node addpcs cluster node remove 명령의 도움말 표시를 참조하십시오.

13.2. 마스터 리소스의 이름이 승격 가능한 복제 리소스로 변경

RHEL(Red Hat Enterprise Linux) 8은 Pacemaker 2.0을 지원합니다. 마스터/슬레이브 리소스는 더 이상 별도의 리소스 유형이 아니지만 promotable 메타 속성이 true로 설정된 표준 복제 리소스입니다.이번 업데이트에는 다음과 같은 변경 사항이 구현되었습니다.

  • pcs 명령으로 더 이상 마스터 리소스를 생성할 수 없습니다. 대신 promotable 복제 리소스를 생성할 수 있습니다. 관련 키워드와 명령이 master에서 promotable로 변경되었습니다.
  • 기존의 모든 마스터 리소스가 승격 가능한 복제 리소스로 표시됩니다.
  • RHEL7 클러스터는 승격 가능한 복제를 지원하지 않으므로 웹 UI에서 RHEL7 클러스터를 관리할 때 마스터 리소스를 계속 마스터라고 부릅니다.

13.3. 클러스터에서 노드를 인증하기 위한 새로운 명령

RHEL(Red Hat Enterprise Linux) 8에서 클러스터 노드 인증에 사용되는 명령에 다음과 같은 변경 사항이 적용됩니다.

  • 인증을 위한 새로운 명령은 pcs host auth입니다. 이 명령으로 사용자는 호스트 이름, 주소 및 pcsd 포트를 지정할 수 있습니다.
  • pcs cluster auth 명령은 로컬 클러스터의 노드만 인증하고 노드 목록을 허용하지 않습니다.
  • 이제 각 노드의 주소를 지정할 수 있습니다. pcs/pcsd 는 지정된 주소를 사용하여 각 노드와 통신합니다. 이러한 주소는 내부적으로 corosync 가 사용하는 주소와 다를 수 있습니다.
  • pcs pcsd clear-auth 명령은 pcs pcsd deauth 명령과 pcs host deauth 명령으로 교체되었습니다. 사용자는 새 명령으로 단일 호스트뿐 아니라 모든 호스트의 인증을 해제할 수 있습니다.
  • 이전에는 노드 인증이 양방향이었으며 pcs cluster auth 명령을 실행하면 지정된 모든 노드가 서로 인증되었습니다. 그러나 pcs host auth 명령은 지정된 노드에 대해 로컬 호스트만 인증됩니다. 따라서 이 명령을 실행할 때 다른 노드에 대해 인증되는 노드를 보다 효과적으로 제어할 수 있습니다. 클러스터를 설정하거나 노드 추가 시 pcs가 클러스터의 토큰을 자동으로 동기화하므로 클러스터의 모든 노드는 이전과 마찬가지로 자동으로 인증되고 클러스터 노드는 서로 통신할 수 있습니다.

이러한 변경 사항은 이전 버전과 호환되지 않습니다. RHEL 7 시스템에서 인증된 노드는 다시 인증해야 합니다.

13.4. Red Hat High Availability 활성/수동 클러스터의 LVM 볼륨

RHEL 8에서 Red Hat HA 활성/수동 클러스터에서 LVM 볼륨을 리소스로 구성할 때 볼륨을 LVM 활성화 리소스로 구성합니다. RHEL 7에서는 볼륨을 LVM 리소스로 구성했습니다. RHEL 8의 활성/수동 클러스터의 리소스로 LVM 볼륨 구성을 포함하는 클러스터 구성 절차의 예는 Red Hat High Availability 클러스터에서 활성/수동 Apache HTTP 서버 구성을 참조하십시오.

13.5. Red Hat High Availability 활성/활성 클러스터의 공유 LVM 볼륨

RHEL 8에서 LVM은 활성/활성 클러스터의 공유 스토리지 장치를 관리하기 위해 RuntimeClass 대신 LVM 잠금 데몬 lvmlockd 를 사용합니다. 이를 위해서는 GFS2 파일 시스템을 공유 논리 볼륨으로 마운트하는 논리 볼륨을 구성해야 합니다.

또한 LVM-activate 리소스 에이전트를 사용하여 LVM 볼륨을 관리하고 lvmlockd 리소스 에이전트를 사용하여 lvmlockd 데몬을 관리해야 합니다.

공유 논리 볼륨을 사용하는 GFS2 파일 시스템이 포함된 RHEL 8 Pacemaker 클러스터를 구성하는 전체 프로시저 는 클러스터의 GFS2 파일 시스템 구성을 참조하십시오.

13.6. RHEL 8 Pacemaker 클러스터의 GFS2 파일 시스템

RHEL 8에서 LVM은 12.3.1절. “공유 스토리지 장치를 관리하기 위한 RuntimeClass 제거 에 설명된 대로 활성/활성 클러스터에서 공유 스토리지 장치를 관리하는 데 instead of LVM 잠금 데몬 lvmlockd 를 사용합니다.

RHEL 8 클러스터에서 RHEL 7 시스템에서 생성된 GFS2 파일 시스템을 사용하려면 RHEL 8 시스템에서 공유 논리 볼륨으로 마운트되는 논리 볼륨을 구성해야 하며 볼륨 그룹에 대해 잠금을 시작해야 합니다. RHEL 8 Pacemaker 클러스터에서 사용할 기존 RHEL 7 논리 볼륨을 공유 논리 볼륨으로 구성하는 절차의 예는 RHEL 7에서 RHEL8로 GFS2 파일 시스템 마이그레이션을 참조하십시오.

14장. 쉘 및 명령행 툴

14.1. 로컬화는 여러 패키지로 배포됩니다.

RHEL 8에서는 단일 glibc-common 패키지로 로케일과 번역을 더 이상 제공하지 않습니다. 대신, 모든 로케일과 언어는 glibc-langpack-CODE 패키지에서 사용 가능합니다. 또한 모든 로케일이 기본적으로 설치되는 것은 아니며 설치 프로그램에서 선택한 로케일만 설치됩니다. 사용자는 필요한 추가 로케일 패키지를 별도로 설치해야 합니다.

시스템에 설치된 모든 패키지의 번역, 사전 및 로케일이 포함된 추가 애드온 패키지를 설치하는 meta-packages는 langpack이라고 합니다.

자세한 내용은 langpacks 사용을 참조하십시오.

14.2. all-numeric 사용자 및 그룹 이름에 대한 지원 제거

RHEL(Red Hat Enterprise Linux) 8에서는 useraddgroupadd 명령을 사용하면 순수하게 숫자 문자로 구성된 사용자 및 그룹 이름을 사용할 수 없습니다. 이러한 이름을 허용하지 않는 이유는 숫자인 사용자 및 그룹 이름과 사용자 및 그룹 ID로 작동하는 툴을 혼동할 수 있기 때문입니다.

명령줄에서 새 사용자 추가에 대한 자세한 내용을 참조하십시오.

14.3. nobody 사용자가 nfsnobody로 대체

RHEL(Red Hat Enterprise Linux) 7은 ID가 99이고 nfsnobody 사용자 및 그룹 쌍과 ID가 65534인 nobody 사용자 및 그룹 쌍을 기본 커널 오버플로 ID로 사용했습니다.

RHEL 8에서는 이 쌍 모두 65534의 ID를 사용하는 nobody 사용자 및 그룹 쌍으로 병합되어 있습니다. RHEL 8에서는 nfsnobody 쌍이 생성되지 않습니다.

이 변경으로 인해 nobody 가 소유하고 있지만 NFS와 관련이 없는 파일에 대한 혼동이 줄어듭니다.

14.4. 버전 관리 시스템

RHEL 8에서는 다음과 같은 버전 관리 시스템을 제공합니다.

  • Git 2.18 - 분산 아키텍처를 사용하는 분산 버전 관리 시스템입니다.
  • Mercurial 4.8 - 대규모 프로젝트를 효율적으로 처리하도록 설계된 경량의 분산 버전 관리 시스템입니다.
  • Subversion 1.10 - 중앙 집중식 버전 관리 시스템입니다.

RHEL 7에서 사용할 수 있는 Concurrent Versions System (CVS) 및 Revision Control System (RCS)은 RHEL 8과 함께 배포되지 않습니다.

14.4.1. Subversion 1.10의 주요 변경 사항

Subversion 1.10에는 RHEL 7에서 배포한 버전 1.7 이후에 추가된 새로운 기능 및 다음과 같은 호환성 변경 사항이 추가되어 있습니다.

  • 언어 바인딩을 지원하는 데 사용한 Subversion 라이브러리의 비호환성 때문에 Subversion 1.10Python 3 바인딩은 사용할 수 없습니다. 결과적으로 SubversionPython 바인딩이 필요한 애플리케이션은 지원되지 않습니다.
  • Berkeley DB에 기반한 리포지토리는 더 이상 지원되지 않습니다. 업그레이드하기 전에 svnadmin dump 명령을 사용하여 Subversion 1.7 에서 생성된 리포지토리를 백업합니다. RHEL 8을 설치한 후 svnadmin load 명령을 사용하여 리포지토리를 복원합니다.
  • RHEL 7의 Subversion 1.7 클라이언트에서 확인한 기존 작업 사본은 새 형식으로 업그레이드해야 Subversion 1.10에서 사용할 수 있습니다. RHEL 8을 설치한 다음 각 작업 사본에서 svn upgrade 명령을 실행합니다.
  • https://를 사용하여 리포지토리에 액세스하는 스마트 카드 인증은 더 이상 지원되지 않습니다.

14.5. crontab 항목에서 systemd 타이머로 이동한 패키지

crontab 항목에 사용되는 패키지는 이제 systemd 타이머를 사용합니다. 다음 명령을 실행하여 systemd 타이머 항목이 있는 패키지를 찾습니다.

$ repoquery --qf %{name} -f '/usr/lib/systemd/system/*.timer'
$ repoquery --qf %{name} -f '/etc/cron.*/*'

15장. 동적 프로그래밍 언어, 웹 서버, 데이터베이스 서버

15.1. 동적 프로그래밍 언어

15.1.1. Python에서 주요 변경 사항

15.1.1.1. Python 3은 RHEL 8의 기본 Python 구현

Red Hat Enterprise Linux 8은 여러 버전의 Python 3 과 함께 배포됩니다. Python 3.6 은 RHEL 8의 전체 라이프 사이클에 대해 지원됩니다. 해당 패키지는 기본적으로 설치되지 않을 수 있습니다.

Python 2.7python2 패키지에서 사용할 수 있습니다. Python 2는 라이프사이클이 더 짧기 때문에 고객이 더 원활하게 Python 3으로 전환할 수 있도록 지원됩니다.

자세한 내용은 Python 버전 을 참조하십시오.

기본 python 패키지와 버전이 지정되지 않은 /usr/bin/python 실행 파일 모두 RHEL 8과 함께 배포되지 않습니다. 고객은 python3 또는 python2를 직접 사용하는 것이 좋습니다. 또는 관리자가 alternatives 명령을 사용하여 버전이 없는 python 명령을 설정할 수 있습니다. 버전이 없는 Python 구성을 참조하십시오.

15.1.1.2. Python 2에서 Python 3으로 마이그레이션

개발자는 Python 2로 작성된 이전 코드를 Python 3으로 마이그레이션할 수 있습니다.

대규모 코드 기반을 Python 3으로 마이그레이션하는 방법에 대한 자세한 내용은 The Conservative Python 3 Porting Guide 를 참조하십시오.

이 마이그레이션 후에는 원래 Python 2 코드를 Python 3 인터프리터에서 해석할 수 있으며 Python 2 인터프리터에서도 해석 가능합니다.

15.1.1.3. 버전이 없는 Python 구성

시스템 관리자는 alternatives 명령을 사용하여 /usr/bin/python 에 있는 버전이 없는 python 명령을 구성할 수 있습니다. 버전이 지정되지 않은 명령을 각 버전으로 구성하기 전에 필수 패키지, python3,python38,python39,python3.11 또는 python2 를 설치해야 합니다.

중요

/usr/bin/python 실행 파일은 alternatives 시스템에 의해 제어됩니다. 수동 변경 사항은 업데이트 시 덮어쓸 수 있습니다.

pip3 과 같은 추가 Python 관련 명령에는 구성 가능한 변형이 없습니다.

15.1.1.3.1. 버전이 없는 python 명령 직접 구성

선택한 Python 버전으로 버전이 없는 python 명령을 직접 구성할 수 있습니다.

사전 요구 사항

  • 필요한 Python 버전이 설치되어 있는지 확인합니다.

절차

  • 버전이 없는 python 명령을 Python 3.6으로 구성하려면 다음을 사용합니다.

    # alternatives --set python /usr/bin/python3
  • 버전이 없는 python 명령을 Python 3.8으로 구성하려면 다음을 사용합니다.

    # alternatives --set python /usr/bin/python3.8
  • 버전이 없는 python 명령을 Python 3.9로 구성하려면 다음을 사용합니다.

    # alternatives --set python /usr/bin/python3.9
  • 버전이 지정되지 않은 python 명령을 Python 3.11로 구성하려면 다음을 사용합니다.

    # alternatives --set python /usr/bin/python3.11
  • 버전이 없는 python 명령을 Python 2로 구성하려면 다음을 사용하십시오.

    # alternatives --set python /usr/bin/python2
15.1.1.3.2. 필수 Python 버전에 버전이 없는 python 명령을 대화형으로 구성

버전이 없는 python 명령을 대화식으로 필수 Python 버전으로 구성할 수 있습니다.

사전 요구 사항

  • 필요한 Python 버전이 설치되어 있는지 확인합니다.

절차

  1. 버전이 없는 python 명령을 대화식으로 구성하려면 다음을 사용합니다.

    # alternatives --config python
  2. 제공된 목록에서 필요한 버전을 선택합니다.
  3. 이 구성을 재설정하고 버전이 없는 python 명령을 제거하려면 다음을 사용합니다.

    # alternatives --auto python
15.1.1.3.3. 추가 리소스
  • alternatives(8)unversioned-python(1) 도움말 페이지

15.1.1.4. Python 스크립트에서 인터프리터 지시문 처리

Red Hat Enterprise Linux 8에서 실행 가능한 Python 스크립트는 최소한 주요 Python 버전을 명시적으로 지정하는 인터프리터 지시문( hashbangs 또는 herbangs)을 사용할 것으로 예상됩니다. 예를 들면 다음과 같습니다.

#!/usr/bin/python3
#!/usr/bin/python3.6
#!/usr/bin/python3.8
#!/usr/bin/python3.9
#!/usr/bin/python3.11
#!/usr/bin/python2

RPM 패키지를 빌드할 때 /usr/lib/rpm/redhat/brp-mangle-shebangs BRP(Buildroot 정책) 스크립트가 자동으로 실행되고 모든 실행 파일에서 인터프리터 지시문을 수정하려고 합니다.

BRP 스크립트는 다음과 같은 모호한 인터프리터 지시문을 사용하여 Python 스크립트가 발생할 때 오류를 생성합니다.

#!/usr/bin/python

또는

#!/usr/bin/env python
15.1.1.4.1. Python 스크립트에서 인터프리터 지시문 수정

RPM 빌드 시 빌드 오류를 유발하는 Python 스크립트의 인터프리터 지시문을 수정합니다.

사전 요구 사항

  • Python 스크립트의 인터프리터 지시문 중 일부는 빌드 오류가 발생합니다.

절차

인터프리터 지시문을 수정하려면 다음 작업 중 하나를 완료합니다.

  • platform-python-devel 패키지에서 pathfix.py 스크립트를 적용합니다.

    # pathfix.py -pn -i %{__python3} PATH …​

    여러 개의 PATHs 를 지정할 수 있습니다. PATH 가 디렉터리인 경우 pathfix.py 는 모호한 인터프리터 지시문이 있는 뿐만 아니라 ^[a-zA-Z0-9_]+\.py$ 패턴과 일치하는 Python 스크립트를 반복적으로 스캔합니다. %prep 섹션 또는 %install 섹션의 끝에 이 명령을 추가합니다.

  • 패키지된 Python 스크립트가 예상 형식을 준수하도록 수정합니다. 이를 위해 pathfix.py 는 RPM 빌드 프로세스 외부에서도 사용할 수 있습니다. RPM 빌드 외부에서 pathfix.py 를 실행하는 경우 위의 예에서 %{__python3}/usr/bin/python3 과 같은 인터프리터 지시문의 경로로 바꿉니다.

패키지된 Python 스크립트에 Python 3.6 이외의 버전이 필요한 경우 필요한 버전을 포함하도록 이전 명령을 조정합니다.

15.1.1.4.2. 사용자 정의 패키지에서 /usr/bin/python3 인터프리터 지시문 변경

기본적으로 /usr/bin/python3 형식의 인터프리터 지시문은 Red Hat Enterprise Linux가 있는 시스템 툴에 사용되는 platform-python 패키지에서 Python을 가리키는 인터프리터 지시문으로 교체됩니다. 사용자 지정 패키지의 /usr/bin/python3 인터프리터 지시문을 변경하여 AppStream 리포지토리에서 설치한 특정 Python 버전을 가리킬 수 있습니다.

절차

  • 특정 Python 버전에 대한 패키지를 빌드하려면 해당 python 패키지의 python*-rpm-macros 하위 패키지를 SPEC 파일의 BuildRequires 섹션에 추가합니다. 예를 들어 Python 3.6의 경우 다음 행을 포함합니다.

    BuildRequires:  python36-rpm-macros

    결과적으로 사용자 지정 패키지의 /usr/bin/python3 인터프리터 지시문이 자동으로 /usr/bin/python3.6 으로 변환됩니다.

참고

BRP 스크립트가 인터프리터 지시문을 확인 및 수정하지 못하도록 하려면 다음 RPM 지시문을 사용합니다.

%undefine __brp_mangle_shebangs

15.1.1.5. net-snmp 패키지의 Python 바인딩을 사용할 수 없음

Net-SNMP 툴 제품군은 RHEL 8의 기본 Python 구현인 Python 3에 대한 바인딩을 제공하지 않습니다. 그 결과, python-net-snmp, python2-net-snmp 또는 python3-net-snmp 패키지는 RHEL 8에서 사용할 수 없습니다.

15.1.2. PHP에서 주요 변경 사항

Red Hat Enterprise Linux 8은 PHP 7.2와 함께 배포됩니다. 이 버전에서는 RHEL 7에서 사용할 수 있는 PHP 5.4에 대해 다음과 같은 주요 변경 사항이 추가되었습니다.

  • PHP에서는 기본적으로 FPM(FastCGI Process Manager)을 사용합니다(스레드된 httpd로 안전하게 사용 가능).
  • php_valuephp-flag 변수는 더 이상 httpd 구성 파일에서 사용되지 않으며 대신 풀 구성(/etc/php-fpm.d/*.conf)에서 설정해야 합니다.
  • PHP 스크립트 오류 및 경고는 /var/log/httpd/error.log대신 /var/log/php-fpm/www-error.log 파일에 기록됩니다.
  • PHP max_execution_time 설정 변수를 변경할 때 변경한 값에 따라 httpd ProxyTimeout 설정을 늘려야 합니다.
  • 이제 PHP 스크립트를 실행하는 사용자가 FPM 풀 구성( /etc/php-fpm.d/www.conf 파일)으로 구성되어 있습니다. apache 사용자는 기본값입니다.
  • 설정 변경 후 또는 새로운 확장 기능을 설치한 후 php-fpm 서비스를 다시 시작해야 합니다.
  • zip 확장은 php-common 패키지에서 별도의 패키지 php-pecl-zip으로 이동

다음의 확장 기능이 제거되었습니다.

  • aspell
  • mysql(php-mysqlnd 패키지에서 제공하는 mysqlipdo_mysql 확장 기능을 계속 사용 가능).
  • memcache

15.1.3. Perl에서 주요 변경 사항

RHEL 8을 통해 배포된 Perl 5.26에서는 RHEL 7에서 제공되었던 버전에 다음과 같은 변경 사항이 추가되었습니다.

  • 이제 유니코드 9.0이 지원됩니다.
  • 새로운 op-entry, loading-fileloaded-file SystemTap 프로브가 제공됩니다.
  • 성능 향상을 위해 스칼라를 할당할 때 COW 메커니즘이 사용됩니다.
  • IPv4 및 IPv6 소켓을 투명하게 처리하는 IO::Socket::IP 모듈이 추가되었습니다.
  • 구조화된 방식으로 perl -V 데이터에 액세스하는 Config::Perl::V 모듈이 추가되었습니다.
  • CPAN(Comprehensive Perl Archive Network) 리포지토리에서 모듈을 검색, 추출, 빌드 및 설치하는 cpanm 유틸리티가 포함된 새로운 perl-App-cpanminus 패키지가 추가되었습니다.
  • 보안상의 이유로 현재 디렉터리 .@INC 모듈 검색 경로에서 제거되었습니다.
  • 위에 설명된 동작 변경을 사용하여 파일을 로드하는 데 실패했을 때 do 문에서는 사용 중단 경고를 표시합니다.
  • do subroutine(LIST) 호출은 더 이상 지원되지 않으므로 구문 오류가 발생합니다.
  • 현재 해시는 기본적으로 무작위로 지정됩니다. 해시에서 반환되는 키와 값의 순서는 perl을 실행할 때마다 변경됩니다. 무작위 지정을 비활성화하려면 PERL_PERTURB_KEYS 환경 변수를 0으로 설정합니다.
  • 정규 표현식 패턴에서 이스케이프되지 않은 리터럴 { 문자는 더 이상 사용되지 않습니다.
  • $_ 변수의 어휘 범위 지원은 제거되었습니다.
  • 배열이나 해시에서 defined 연산자를 사용하면 치명적인 오류가 발생합니다.
  • UNIVERSAL 모듈에서 함수를 가져올 때 치명적인 오류가 발생합니다.
  • find2perl, s2p, a2p, c2phpstruct 툴이 제거되었습니다.
  • ${^ENCODING} 기능이 제거되었습니다. encoding pragma의 기본 모드는 더 이상 지원되지 않습니다. encoding pragma의 기본 모드는 더 이상 지원되지 않습니다. UTF-8 이외의 다른 인코딩으로 소스 코드를 작성하려면 인코딩의 Filter 옵션을 사용합니다.
  • 이제 perl 패키지가 업스트림에 맞게 변경되었습니다. perl 패키지에서는 코어 모듈을 설치하고 /usr/bin/perl 인터프리터는 perl-interpreter 패키지로 제공됩니다. perl 패키지는 코어 모듈도 설치하고 /usr/bin/perl 인터프리터는 perl-interpreter 패키지에서 제공합니다. 이전 릴리스에서 perl 패키지에는 최소한의 인터프리터만 포함했지만 perl-core 패키지에는 인터프리터와 코어 모듈이 모두 포함되어 있었습니다.
  • IO::Socket::SSL Perl 모듈이 ./certs/my-ca.pem 파일 또는 ./ca 디렉토리에서 인증 기관 인증서를 로드하지 않습니다. ./certs/server-key.pem 파일의 서버 개인 키, ./certs/server-cert.pem 파일의 서버 인증서 ./certs/client-key.pem 파일의 클라이언트 개인 키와 ./certs/client-cert.pem 파일의 클라이언트 인증서. 대신 명시적으로 파일의 경로를 지정합니다.

15.1.4. Ruby에서 주요 변경 사항

RHEL 8에서는 RHEL 7에서 사용 가능한 Ruby 2.0.0의 새로운 기능과 개선사항이 추가된 Ruby 2.5를 제공합니다. 주요 변경 사항은 다음과 같습니다.

  • 증분식 가비지 컬렉터 (Garbage Collector)가 추가되었습니다.
  • Refinements 구문이 추가되었습니다.
  • 기호는 이제 가비지 수집됩니다.
  • $SAFE=2$SAFE=3 안전 레벨은 이제 폐지됩니다.
  • FixnumBignum 클래스는 Integer 클래스로 통합되었습니다.
  • Hash 클래스를 최적화하고 인스턴스 변수에 대한 액세스를 향상시키고 Mutex 클래스를 더 작고 빠르게 최적화하여 성능을 향상시킬 수 있습니다.
  • 이전 API 중 일부는 더 이상 사용되지 않습니다.
  • RubyGems, Rake, RDoc, Psych, Minitesttest-unit과 같이 번들된 라이브러리가 업데이트되었습니다.
  • Ruby를 통해 이전에 배포된 mathn, DL, ext/tkXMLRPC 등의 라이브러리는 더 이상 사용되지 않거나 포함되지 않습니다.
  • SemVer 버전 지정 스키마는 이제 Ruby 버전 지정에 사용됩니다.

15.1.5. SWIG에서 주요 변경 사항

RHEL 8에는 RHEL 7에서 배포된 버전 2.0에 비해 많은 새로운 기능, 향상된 기능 및 버그 수정사항이 추가된 SWIG(Simplified Wrapper and Interface Generator) 버전 3.0이 포함되어 있습니다. 특히 C ++ 11 표준에 대한 지원이 구현되었습니다. SWIG 는 이제 Go 1.6,PHP 7,Octave 4.2, Python 3.5 에서도 지원됩니다.

15.1.6. RHEL에서 새로 추가된 Node.js

JavaScript 프로그래밍 언어로 빠르고 확장 가능한 네트워크 애플리케이션을 구축하기 위한 소프트웨어 개발 플랫폼인 Node.js가 RHEL에서 처음으로 제공됩니다. 이전에는 소프트웨어 컬렉션으로만 제공되었습니다. RHEL 8에서는 Node.js 10이 제공됩니다.

15.2. Tcl

툴 명령 언어(Tcl) 는 동적 프로그래밍 언어입니다. 이 언어의 인터프리터는 C 라이브러리와 함께 tcl 패키지에서 제공됩니다.

Tk ( Tcl /Tk)와 함께 Tcl을 사용하면 크로스 플랫폼 GUI 애플리케이션을 생성할 수 있습니다. TKtk 패키지에서 제공합니다.

Tk 는 다음 중 하나를 참조할 수 있습니다.

  • 여러 언어를 위한 프로그래밍 툴킷
  • C, Ruby, Perl 및 Python과 같은 여러 언어로 사용할 수 있는 Tk C 라이브러리 바인딩
  • Tk 콘솔을 인스턴스화하는 원하는 인터프리터
  • 특정 Tcl 인터프리터에 여러 개의 새 명령을 추가하는 Tk 확장

15.2.1. Tcl/Tk 8.6에서 주요 변경 사항

RHEL 8은 Tcl/Tk 버전 8.6 과 함께 배포되며 Tcl/Tk 버전 8.5 에 대해 여러 가지 주요 변경 사항을 제공합니다.

  • 개체 지향 프로그래밍 지원
  • Stackless 평가 구현
  • 예외 처리 기능 개선
  • Tcl과 함께 빌드 및 설치된 타사 패키지 수집
  • 다중 스레드 작업 활성화
  • SQL 데이터베이스 기반 스크립트 지원
  • IPv6 네트워킹 지원
  • 내장된 Zlib 압축
  • 목록 처리

    Tcl 컨테이너를 통해 변환의 표현식을 허용하는 두 개의 새로운 명령 lmapdict 맵 을 사용할 수 있습니다.

  • 스크립트별 스택 채널

    chan pushchan pop 두 가지 새로운 명령을 사용할 수 있으므로 I/O 채널에 대한 변환을 추가하거나 제거할 수 있습니다.

Tcl/Tk 버전 8.6 변경 사항 및 새로운 인종에 대한 자세한 내용은 다음 리소스를 참조하십시오.

Tcl/Tk 8.6 으로 마이그레이션해야 하는 경우 T cl/Tk를 사용하여 작업을 스크립팅하는 사용자가 마이그레이션 경로를 참조하십시오.

15.3. 웹 서버

15.3.1. Apache HTTP Server에서 주요 변경 사항

Apache HTTP Server 가 RHEL 7의 2.4.6 버전에서 RHEL 8의 2.4.37 버전으로 업데이트되었습니다. 이 업데이트된 버전에는 몇 가지 새로운 기능이 포함되어 있지만 외부 모듈 구성 및 ABI(Application Binary Interface) 수준에서는 RHEL 7 버전과의 역호환성을 유지합니다.

새로운 기능은 다음과 같습니다.

  • HTTP/2 지원은 이제 httpd 모듈의 일부인 mod_http2 패키지를 통해 제공됩니다.
  • systemd 소켓 활성화가 지원됩니다. 자세한 내용은 httpd.socket(8) 도움말 페이지를 참조하십시오.
  • 여러 새 모듈이 추가되었습니다.

    • mod_proxy_hcheck - 프록시 상태 확인 모듈
    • mod_proxy_uwsgi - WSGI(Web Server Gateway Interface) 프록시
    • mod_proxy_fdpass - 클라이언트의 소켓을 다른 프로세스에 전달하는 기능을 제공
    • mod_cache_socache - HTTP 캐시 (예: memcache 백엔드를 사용)
    • mod_md - ACME 프로토콜의 SSL/TLS 인증서 서비스
  • 이제 기본적으로 다음 모듈이 로드됩니다.

    • mod_request
    • mod_macro
    • mod_watchdog
  • 디렉터리에 대한 올바른 권한을 포함하여 Apache HTTP Server의 기본 디렉터리 레이아웃이 포함된 새 하위 패키지 httpd-filesystem이 추가되었습니다.
  • 인스턴스화된 서비스 지원 httpd@.service가 도입되었습니다. 자세한 내용은 httpd.service 도움말 페이지를 참조하십시오.
  • httpd-init.service는 자체 서명된 mod_ssl 키 쌍을 생성하기 위해 %post script를 대체합니다.
  • ACME(Automatic Certificate Management Environment) 프로토콜을 사용하는 자동화된 TLS 인증서 프로비저닝 및 업데이트가 이제 mod_md 패키지와 함께 지원됩니다(Let’s Encrypt와 같은 인증 기관을 통해 사용).
  • 이제 Apache HTTP Server에서는 PKCS#11 모듈에서 직접 하드웨어 보안 토큰의 TLS 인증서 및 개인 키를 로드하는 기능을 지원합니다. 결과적으로 이제 mod_ssl 구성에서 PKCS#11 URL을 사용하여 TLS 개인키를 식별할 수 있으며, 선택적으로 SSLCertificateKeyFileSSLCertificateFile 지시문으로 TLS 인증서를 식별할 수 있습니다.
  • /etc/httpd/conf/httpd.conf 파일에 있는 새 ListenFree 지시문이 지원됩니다.

    Listen 지시문과 마찬가지로 ListenFree는 서버가 수신 대기하는 IP 주소, 포트 또는 IP 주소 및 포트 조합에 대한 정보를 제공합니다. 그러나 ListenFree를 사용하면 IP_FREEBIND 소켓 옵션이 기본적으로 활성화됩니다. 따라서 httpd는 비로컬 IP 주소 또는 아직 존재하지 않는 IP 주소에 바인딩할 수 있습니다. 이렇게 하면 httpd가 기본 네트워크 인터페이스나 지정된 동적 IP 주소가 httpd에 바인딩하려고 할 때 소켓에서 수신 대기할 수 있습니다.

    ListenFree 지시문은 현재 RHEL 8에서만 사용할 수 있습니다.

    ListenFree에 대한 자세한 내용은 다음 표를 참조하십시오.

    표 15.1. ListenFree 지시문의 구문, 상태 및 모듈

    구문상태모듈

    ListenFree [IP-address:]portnumber [protocol]

    MPM

    event, worker, prefork, mpm_winnt, mpm_netware, mpmt_os2

기타 주요 변경 사항은 다음과 같습니다.

  • 다음 모듈이 제거되었습니다.

  • RHEL 8의 Apache HTTP Server에서 사용하는 DBM 인증 데이터베이스의 기본 유형이 SDBM에서 db5로 변경되었습니다.
  • Apache HTTP Servermod_wsgi 모듈이 Python 3으로 업데이트되었습니다. WSGI 애플리케이션은 이제 Python 3에서만 지원되며 Python 2에서 마이그레이션해야 합니다.
  • Apache HTTP Server 와 함께 기본적으로 구성된 멀티프로세싱 모듈(MPM)은 멀티 프로세스 분기 모델( prefork라고도 함)에서 고성능 멀티 스레드 모델 event로 변경되었습니다.

    스레드로부터 안전하지 않은 타사 모듈은 교체하거나 제거해야 합니다. 설정된 MPM을 변경하려면 /etc/httpd/conf.modules.d/00-mpm.conf 파일을 편집합니다. 자세한 내용은 httpd.service(8) 도움말 페이지를 참조하십시오.

  • suEXEC에서 사용자에게 허용되는 최소 UID 및 GID는 각각 1000 및 500입니다(이전에는 100 및 100).
  • /etc/sysconfig/httpd 파일은 httpd 서비스의 환경 변수를 설정하기 위해 지원되는 인터페이스가 아닙니다. systemd 서비스에 httpd.service(8) 도움말 페이지가 추가되었습니다.
  • 이제 httpd 서비스를 중지하면 기본적으로 "중지"가 사용됩니다.
  • mod_auth_kerb 모듈이 mod_auth_gssapi 모듈로 교체되었습니다.

배포에 대한 지침은 Apache HTTP 웹 서버 설정을 참조하십시오.

15.3.2. RHEL에서 새로 추가된 nginx 웹 서버

RHEL 8에서는 HTTP 및 기타 프로토콜을 지원하는 웹 서버 및 프록시 서버인 nginx 1.14를 도입하여 높은 동시성, 성능 및 낮은 메모리 사용률에 중점을 두고 있습니다. nginx는 이전에는 소프트웨어 컬렉션으로만 사용 가능했습니다.

이제 nginx 웹 서버에서는 PKCS#11 모듈에서 직접 하드웨어 보안 토큰의 TLS 개인 키를 로드하는 기능을 지원합니다. 결과적으로 이제 nginx 설정에서 PKCS#11 URL을 사용하여 ssl_certificate_key 지시문으로 TLS 개인 키를 지정할 수 있습니다.

15.3.3. RHEL 8.0에서 Apache Tomcat 삭제, RHEL 8.8에서 재 소개

Apache Tomcat 서버는 Red Hat Enterprise Linux 8.0에서 제거되었으며 RHEL 8.8에서 다시 도입되었습니다. Tomcat은 Java Servlet 및 JavaServer Pages 기술을 위한 공식 참조 구현에 사용되는 서블릿 컨테이너입니다. Java Servlet 및 JavaServer Pages 사양은 Sun에서 Java Community Process에 따라 개발했습니다. Tomcat은 공개 및 참여 환경에서 개발되었으며 Apache Software License 버전 2.0에 따라 출시되었습니다.

서블릿 컨테이너가 필요한 RHEL 8.8보다 이전 마이너 버전의 사용자는 JBoss Web Server 를 사용할 수 있습니다.

15.4. 프록시 캐싱 서버

15.4.1. RHEL의 Varnish Cache new

RHEL에서 처음으로 고성능 HTTP 역방향 프록시인 Varnish Cache 가 제공됩니다. 이전에는 소프트웨어 컬렉션으로만 제공되었습니다. Varnish Cache 는 향후 동등한 요청에서 응답 시간 및 네트워크 대역폭 사용을 줄이는 데 사용되는 메모리에 파일 또는 파일 조각을 저장합니다. RHEL 8.0은 Varnish Cache 6.0 과 함께 배포됩니다.

15.4.2. Squid에서 주요 변경 사항

RHEL 8.0은 FTP, Gopher 및 HTTP 데이터 오브젝트를 지원하는 웹 클라이언트용 고성능 프록시 캐싱 서버인 Squid 4.4 와 함께 배포됩니다. 이 릴리스에서는 RHEL 7에서 사용할 수 있는 버전 3.5에 비해 다양한 새로운 기능, 개선 사항 및 버그 수정을 제공합니다.

주요 변경 사항은 다음과 같습니다.

  • 구성 가능한 도우미 대기열 크기
  • 도우미 동시성 채널의 변경 사항
  • helper 바이너리 변경 사항
  • ICAP(Secure Internet Content Adaptation Protocol)
  • Symmetric Multi Processing (SMP)에 대한 지원 개선
  • 프로세스 관리 개선
  • SSL 지원 삭제
  • 제거된 Edge Side Includes (ESI) 사용자 정의 구문 분석기
  • 여러 구성 변경

15.5. 데이터베이스 서버

RHEL 8에서는 다음과 같은 데이터베이스 서버를 제공합니다.

  • MySQL 8.0. 다중 사용자, 멀티 스레드 SQL 데이터베이스 서버입니다.이 서버는 MySQL 서버 데몬, mysqld 및 여러 클라이언트 프로그램으로 구성됩니다.
  • MariaDB 10.3. 다중 사용자, 멀티 스레드 SQL 데이터베이스 서버입니다 .실용적인 목적으로 사용하기 위해 MariaDBMySQL과 바이너리 호환됩니다.
  • PostgreSQL 10PostgreSQL 9.6.고급 오브젝트 관계형 데이터베이스 관리 시스템(DBMS)입니다.
  • Redis 5. 고급 키-값 저장소입니다 . 키에 문자열, 해시, 목록, 세트 및 정렬된 세트가 포함될 수 있으므로 데이터 구조 서버라고 합니다.RHEL에서 처음으로 Redis가 제공됩니다.

SSPL(Server Side Public License)을 사용하므로 RHEL 8.0에는 NoSQL MongoDB 데이터베이스 서버가 포함되어 있지 않습니다.

데이터베이스 서버를 병렬로 설치할 수 없음

충돌하는 RPM 패키지로 인해 RHEL 8.0에서 mariadbmysql 모듈을 병렬로 설치할 수 없습니다.

설계상 동일한 모듈의 두 개 이상 버전(스트림)을 병렬로 설치할 수 없습니다. 예를 들어 postgresql 모듈에서 사용할 수 있는 스트림 중 하나를 10(기본) 또는 9.6 중에서 선택해야 합니다. RHEL 6 및 RHEL 7용 Red Hat Software Collections에서는 구성 요소의 병렬 설치가 가능합니다. RHEL 8에서는 컨테이너에서 다른 버전의 데이터베이스 서버를 사용할 수 있습니다.

15.5.1. MariaDB 10.3에서 주요 변경 사항

MariaDB 10.3 에서는 RHEL 7에 배포된 버전 5.5에 비해 다음과 같은 다양한 새로운 기능을 제공합니다.

  • CTE (Common Table Expression)
  • 시스템 버전 테이블
  • FOR 루프
  • 표시되지 않는 열
  • 순서
  • InnoDB 인스턴트 ADD COLUMN
  • 스토리지 엔진에 의존하지 않는 컬럼 압축
  • 병렬 복제
  • 멀티 소스 복제

또한 새로운 mariadb-connector-c 패키지에서는 MySQLMariaDB의 공통 클라이언트 라이브러리를 제공합니다. 이 라이브러리는 MySQLMariaDB 데이터베이스 서버의 모든 버전에서 사용할 수 있습니다. 결과적으로 RHEL 8을 통해 배포된 MySQLMariaDB 서버에 구축되는 애플리케이션 중 하나에 연결할 수 있습니다.

기타 주요 변경 사항은 다음과 같습니다.

  • MariaDB Galera Cluster 는 이제 MariaDB 의 표준 부분입니다.
  • XtraDB 대신 InnoDB를 기본 스토리지 엔진으로 사용
  • mariadb-bench 하위 패키지가 제거되었습니다.
  • 플러그인 완성의 기본 허용 수준은 서버 완성보다 한 수준 미만으로 변경되었습니다. 그 결과 이전에 작업했던 완성도 수준이 낮은 플러그인이 더 이상 로드되지 않습니다.

Using MariaDB on Red Hat Enterprise Linux 8도 참조하십시오.

15.5.2. MySQL 8.0에서 주요 변경 사항

RHEL 8에 포함되는 MySQL 8.0은 다음과 같은 향상된 기능을 제공합니다.

  • MySQL은 이제 데이터베이스 객체에 관한 정보를 저장하는 트랜잭션 데이터 사전을 통합합니다.
  • MySQL에서는 이제 권한 컬렉션인 역할을 지원합니다.
  • 기본 문자 세트가 latin1에서 utf8mb4로 변경되었습니다.
  • 재귀 및 비재귀 CTE (Common Table Expression) 지원이 추가되었습니다.
  • MySQL에서는 이제 관련 행을 사용하여 쿼리의 각 행에 대한 계산을 수행하는 창 함수를 지원합니다.
  • InnoDB에서는 이제 locking read 문과 함께 NOWAITSKIP LOCKED 옵션을 지원합니다.
  • GIS 관련 기능이 향상되었습니다.
  • JSON 함수가 강화되었습니다.
  • 새로운 mariadb-connector-c 패키지에서는 MySQLMariaDB의 공통 클라이언트 라이브러리를 제공합니다. 이 라이브러리는 MySQLMariaDB 데이터베이스 서버의 모든 버전에서 사용할 수 있습니다. 결과적으로 RHEL 8을 통해 배포된 MySQLMariaDB 서버에 구축되는 애플리케이션 중 하나에 연결할 수 있습니다.

또한 RHEL 8의 클라이언트 툴과 라이브러리는 기본적으로 업스트림 MySQL 8.0 버전에서 사용되는 caching_sha2_password 방법과 호환되지 않으므로, RHEL 8을 통해 배포된 MySQL 8.0 서버는 mysql_native_password를 기본 인증 플러그인으로 사용하도록 구성됩니다.

기본 인증 플러그인을 caching_sha2_password로 변경하려면 /etc/my.cnf.d/mysql-default-authentication-plugin.cnf 파일을 다음과 같이 변경합니다.

[mysqld]
default_authentication_plugin=caching_sha2_password

15.5.3. PostgreSQL에서 주요 변경 사항

RHEL 8.0에서는 postgresql 모듈의 두 가지 스트림에 배포된 PostgreSQL 데이터베이스 서버의 두 가지 버전을 제공합니다. PostgreSQL 10 (기본 스트림) 및 PostgreSQL 9.6. RHEL 7에는 PostgreSQL 버전 9.2가 포함되어 있습니다.

PostgreSQL 9.6 에서 주요 변경 사항은 다음과 같습니다.

  • 순차적 작업의 병렬 실행: 검사,조인집계
  • 동기 복제 기능 개선
  • 사용자가 구문을 검색할 수 있도록 지원하는 전체 텍스트 검색 기능 개선
  • postgres_fdw 데이터 페더러 드라이버에서 원격 조인,정렬,UPDATE, DELETE 작업을 지원
  • 멀티 CPU 소켓 서버의 확장성과 관련하여 상당한 성능 개선

PostgreSQL 10 의 주요 개선 사항은 다음과 같습니다.

  • publishsubscribe 키워드를 사용하는 논리 복제
  • SCRAM-SHA-256 메커니즘을 기반으로 하는 강력한 암호 인증
  • 선언적 테이블 파티셔닝
  • 쿼리 병렬 개선
  • 일반적인 성능 개선 사항
  • 모니터링 및 제어 개선

Using PostgreSQL on Red Hat Enterprise Linux 8 에서도 참조하십시오.

16장. 컴파일러 및 개발 도구

16.1. RHEL 7 이후 툴체인 변경

다음 섹션에서는 Red Hat Enterprise Linux 7에서 설명된 구성 요소 릴리스 이후 툴체인의 변경 사항을 나열합니다. Red Hat Enterprise Linux 8.0 릴리스 노트 도 참조하십시오.

16.1.1. RHEL 8 GCC의 변경 사항

Red Hat Enterprise Linux 8에서 GCC 툴체인은 GCC 8.2 릴리스 시리즈를 기반으로 합니다. Red Hat Enterprise Linux 7 이후 주요 변경 사항은 다음과 같습니다.

  • 별칭 분석, vectorizer 개선, 동일한 코드 접기, 비 절차 분석, 저장 최적화 패스 및 기타와 같은 일반적인 최적화가 많이 추가되었습니다.
  • 주소 로티가 개선되었습니다.
  • 메모리 누수 감지를 위한 Leak Sanitizer가 추가되었습니다.
  • 정의되지 않은 동작을 감지하기 위한 Undefined Behavior Sanitizer가 추가되었습니다.
  • 디버그 정보는 이제 DWARF5 형식으로 생성할 수 있습니다. 이 기능은 실험적입니다.
  • 소스 코드 적용 분석 도구 GCOV는 다양한 개선 사항으로 확장되었습니다.
  • OpenMP 4.5 사양 지원이 추가되었습니다. 또한 OpenMP 4.0 사양의 오프로드 기능은 이제 C, C++ 및 Fortran 컴파일러에서 지원됩니다.
  • 새로운 경고와 향상된 진단이 특정 프로그래밍 오류를 정적 탐지하기 위해 추가되었습니다.
  • 이제 소스 위치가 포인트가 아닌 범위로 추적되어 훨씬 풍부한 진단을 수행할 수 있습니다. 컴파일러는 이제 "고정" 힌트를 제공하여 가능한 코드 수정을 제안합니다. 맞춤법 검사기가 추가되어 대체 이름을 제공하고 오타를 쉽게 감지할 수 있습니다.

보안

GCC는 생성된 코드를 추가로 강화할 수 있는 도구를 제공하기 위해 확장되었습니다. 보안과 관련된 개선 사항은 다음과 같습니다.

  • 오버플로 검사를 사용하는 산술 작업에 대한 __builtin_add_overflow,__builtin_sub_overflow, __builtin_mul_overflow 기본 제공 함수가 추가되었습니다.
  • 스택 충돌에 대한 추가 코드 보호 기능을 생성하기 위해 -fstack-clash-protection 옵션이 추가되었습니다.
  • -fcf-protection 옵션은 프로그램 보안 향상을 위해 control-flow 명령의 대상 주소를 확인하기 위해 도입되었습니다.
  • 새로운 -Wstringop-truncation 경고 옵션은 복사된 문자열을 잘라내거나 대상을 변경하지 않은 상태로 두는 strncat,strncpy 또는 stpncpy 와 같은 바인딩된 문자열 조작 기능에 대한 호출을 나열합니다.
  • -Warray-bounds 경고 옵션은 범위를 벗어난 배열 인덱스 및 포인터 오프셋을 더 잘 감지하도록 개선되었습니다.
  • memcpy 또는 realloc 와 같은 원시 메모리 액세스 기능을 통해 비공식 클래스 유형의 객체를 잠재적으로 안전하지 않은 조작에 대해 경고하기 위해 -Wclass-memaccess 경고 옵션이 추가되었습니다.

아키텍처 및 프로세서 지원

아키텍처 및 프로세서 지원 개선 사항은 다음과 같습니다.

  • Intel AVX-512 아키텍처에 대한 여러 가지 새로운 아키텍처, 여러 마이크로 아키텍처 및 Intel SGX(Software guard Extensions)가 추가되었습니다.
  • 코드 생성은 이제 64 비트 ARM ARM 아키텍처 LSE 확장, ARMv8.2-A (FPE), ARMv8.2-A, ARMv8.3-A, ARMv8.4-A 아키텍처 버전을 대상으로 할 수 있습니다.
  • ARM 및 64비트 ARM 아키텍처의 -march=native 옵션이 수정되었습니다.
  • 64비트 IBM Z 아키텍처의 z13 및 z14 프로세서에 대한 지원이 추가되었습니다.

언어 및 표준

언어 및 표준과 관련된 주요 변경 사항은 다음과 같습니다.

  • C 언어로 코드를 컴파일할 때 사용되는 기본 표준은 GNU 확장을 사용하여 C17으로 변경되었습니다.
  • C++ 언어로 코드를 컴파일할 때 사용되는 기본 표준은 GNU 확장 기능을 사용하여 C++14로 변경되었습니다.
  • 이제 C++ 런타임 라이브러리에서 C++11 및 C++14 표준을 지원합니다.
  • C++ 컴파일러는 이제 변수 템플릿과 같은 많은 새로운 기능을 통해 C++14 표준을 구현하고, 비정적 데이터 멤버 초기화기, 확장된 constexpr ator, sized deallocation 함수, 일반 람다, 변수 길이 배열, 숫자 구분 기호 등을 사용하여 C++14 표준을 구현합니다.
  • C 언어 표준 C11 지원이 개선되었습니다. ISO C11 원자성, 일반적인 선택 사항 및 스레드 로컬 스토리지를 사용할 수 있습니다.
  • 새로운 __auto_type GNU C 확장은 C 언어의 C++11 auto 키워드의 기능의 서브셋을 제공합니다.
  • ISO/IEC TS 18661-3:2015 표준에 지정된 _FloatN x 및 _FloatNx 유형 이름은 이제 C 프런트 엔드에서 인식합니다.
  • C 언어로 코드를 컴파일할 때 사용되는 기본 표준은 GNU 확장을 사용하여 C17으로 변경되었습니다. 이는 --std=gnu17 옵션을 사용하는 것과 동일한 효과가 있습니다. 이전에는 기본값이 GNU 확장을 사용하는 C89였습니다.
  • GCC는 이제 C++17 언어 표준과 C++20 표준의 특정 기능을 사용하여 코드를 실험적으로 컴파일할 수 있습니다.
  • 이제 빈 클래스를 인수로 전달하면 플랫폼 ABI에 필요한 대로 Intel 64 및 AMD64 아키텍처에서 공간을 차지하지 않습니다. 삭제된 복사본만 사용하여 클래스를 전달하거나 반환하거나 생성자를 이동해도 생성자가 아닌 복사 또는 이동 생성자가 있는 클래스와 동일한 호출 규칙을 사용합니다.Passing or returning a class with only deleted copy and move constructors now uses the same calling convention as a class with a non-trivial copy or move constructor.
  • C++11 alignof 연산자에서 반환된 값은 C _Alignof 연산자와 일치하도록 수정되었으며 최소 정렬을 반환하도록 수정되었습니다. 선호하는 정렬을 찾으려면 GNU 확장자 __alignof__ 를 사용합니다.
  • Fortran 언어 코드의 libgfortran 라이브러리의 기본 버전이 5로 변경되었습니다.
  • Ada (GNAT), GCC Go 및 후에 C/C++ 언어에 대한 지원이 제거되었습니다. Go 코드 개발에 Go Toolset을 사용합니다.

추가 리소스

16.1.2. RHEL 8의 GCC 보안 개선

다음은 보안과 관련된 GCC의 변경 사항이며 Red Hat Enterprise Linux 7.0 릴리스 이후 추가되었습니다.

새 경고

이러한 경고 옵션이 추가되었습니다.

옵션경고 표시

-Wstringop-truncation

복사된 문자열을 잘라내거나 대상을 변경하지 않고 그대로 유지할 수 있는 strncat,strncpystpncpy 와 같은 바인딩된 문자열 조작 함수를 호출합니다.

-Wclass-memaccess

비독점 클래스 유형의 개체는 memcpy 또는 realloc 와 같은 원시 메모리 기능에 의해 잠재적으로 안전하지 않은 방식으로 조작됩니다.

경고는 사용자 정의 생성자 또는 복사 할당 연산자를 바이패스하는 호출, 손상된 가상 테이블 포인터, const-qualified 형식 또는 참조 또는 멤버 포인터의 데이터 멤버를 감지하는 데 도움이 됩니다. 경고는 데이터 멤버에 대한 액세스 제어를 바이패스하는 호출도 감지합니다.

-Wmisleading-indentation

코드의 들여쓰기를 통해 코드의 블록 구조를 사람이 리더에게 잘못된 정보를 제공할 수 있는 위치에 위치합니다.

-Walloc-size-larger-than=size

메모리를 할당할 메모리의 크기가 초과된 메모리 할당 기능에 대한 호출입니다. 두 매개 변수를 곱하여 할당이 지정된 함수와 속성 alloc_size 로 장식된 모든 함수와 함께 작동합니다.

-Walloc-zero

제로 양의 메모리를 할당하려는 메모리 할당 함수에 대한 호출입니다. 두 매개 변수를 곱하여 할당이 지정된 함수와 속성 alloc_size 로 장식된 모든 함수와 함께 작동합니다.

-Walloca

alloca 함수를 호출합니다.

-Walloca-larger-than=size

요청된 메모리가 크기 보다 많은 alloca 함수에 대한 호출입니다.

-Wvla-larger-than=size

지정된 크기를 초과하거나 바인딩된 값을 충분히 제한할 수 없는 변수 길이 배열(VLA)입니다.

-Wformat-overflow=level

포맷된 출력 함수의 stekton 제품군에 대한 호출의 특정 및 가능성이 있는 버퍼 오버플로우입니다.Both certain and likely buffer overflow in calls to the soctets family of formatted output functions. 수준 값에 대한 자세한 내용과 설명은 gcc(1) 매뉴얼 페이지를 참조하십시오.

-Wformat-truncation=level

포맷된 출력 함수의 sntekton 제품군에 대한 호출의 특정 출력 well 및 가능한 출력 well입니다. 수준 값에 대한 자세한 내용과 설명은 gcc(1) 매뉴얼 페이지를 참조하십시오.

-Wstringop-overflow=type

memcpystrcpy 와 같은 문자열 처리 기능에 대한 호출의 버퍼 오버플로 수준 값에 대한 자세한 내용과 설명은 gcc(1) 매뉴얼 페이지를 참조하십시오.

경고 개선 사항

이러한 GCC 경고가 개선되었습니다.

  • -Warray-bounds 옵션은 아웃 바운드(out-of-bound) 배열 인덱스 및 포인터 오프셋의 더 많은 인스턴스를 감지하도록 개선되었습니다. 예를 들어 음수 또는 과도한 인덱스를 유연한 배열 멤버로 변환하고 문자열 리터럴이 탐지됩니다.
  • GCC 7에 도입된 -Wrestrict 옵션은 memcpystrcpy 와 같은 표준 메모리 및 문자열 조작 기능에 대한 제한 인수를 통해 개체에 대한 더 많은 중복 액세스 인스턴스를 감지하도록 개선되었습니다.
  • -Wnonnull 옵션은 null 포인터를 null이 아닌 인수(null이 아닌 속성과 함께 있음)를 예상하는 함수에 전달하는 광범위한 사례를 감지하도록 개선되었습니다.

새로운 UndefinedBehaviorSanitizer

UndefinedBehaviorSanitizer라는 정의되지 않은 동작을 감지하는 새로운 런타임 sanitizer가 추가되었습니다. 다음 옵션은 주목할 가치가 있습니다.

옵션Check

-fsanitize=float-divide-by-zero

부동 소수점 분할을 0으로 감지합니다.

-fsanitize=float-cast-overflow

정수 변환에 부동 소수점 유형의 결과가 오버플로되지 않는지 확인합니다.

-fsanitize=bounds

배열 경계를 계측하고 범위를 벗어난 액세스를 감지할 수 있습니다.

-fsanitize=alignment

맞춤 검사를 활성화하고 다양한 잘못 정렬된 오브젝트를 감지할 수 있습니다.

-fsanitize=object-size

개체 크기 검사를 활성화하고 다양한 범위를 벗어난 액세스를 감지합니다.

-fsanitize=vptr

C++ 멤버 함수 호출, 멤버 액세스 및 포인터 간 일부 변환을 기본 클래스와 파생된 클래스로 검사할 수 있습니다.Enables checking of C++ member function calls, member accesses, and some conversions between pointers to base and derived classes. 또한 참조된 오브젝트에 올바른 동적 유형이 없는 경우 탐지됩니다.

-fsanitize=bounds-strict

배열 경계를 엄격하게 확인할 수 있습니다. 이렇게 하면 -fsanitize=bounds 및 flexible array 멤버와 같은 배열의 계측을 활성화합니다.

-fsanitize=signed-integer-overflow

일반 벡터를 사용하여 산술 연산에서도 산술 오버플로를 진단합니다.

-fsanitize=builtin

런타임에 잘못된 인수 __builtin_clz 또는 __builtin_ctz 접두사 내장된 인수를 진단합니다. -fsanitize=undefined 의 검사를 포함합니다.

-fsanitize=pointer-overflow

포인터 줄 바꿈을 위해 저렴한 런타임 테스트를 수행합니다. -fsanitize=undefined 의 검사를 포함합니다.

AddressSanitizer에 대한 새로운 옵션

이러한 옵션은 AddressSanitizer에 추가되었습니다.

옵션Check

-fsanitize=pointer-compare

다른 메모리 개체를 가리키는 포인터의 비교에 대해 경고합니다.

-fsanitize=pointer-subtract

다른 메모리 오브젝트를 가리키는 포인터의 빼기에 대해 경고합니다.

-fsanitize-address-use-after-scope

변수가 정의된 범위 후에 주소를 사용하고 사용하는 변수를 삭제합니다.

기타 과성자 및 계측

  • 스택 공간이 정적으로 할당되거나 동적으로 스택 오버플로를 감지하기 위해 -fstack-clash-protection 옵션을 삽입하여 스택 오버플로를 안정적으로 탐지하고 운영 체제에서 제공하는 스택 보호 페이지를 건너뛰는 공격 벡터를 완화합니다.
  • 새로운 옵션 -fcf-protection=[full|branch|return|none] 이 추가되어 코드 계측을 수행하고 control-flow 전송 명령(예: 간접 함수 호출, 함수 반환, 간접 점과 같은)의 대상 주소가 유효한지 확인하여 프로그램 보안을 높일 수 있습니다.

추가 리소스

  • 위의 일부 옵션에 제공된 값에 대한 자세한 내용과 설명은 gcc(1) 매뉴얼 페이지를 참조하십시오.

    $ man gcc

16.1.3. RHEL 8 GCC의 호환성 발생 변경

C++ ABI는 std::stringstd::list에서 변경

libstdc++ 라이브러리의 std:: string 및 std::list 클래스의 ABI(Application Binary Interface)는 RHEL 7 (GCC 4.8)과 RHEL 8(GCC 8) 사이에서 C++11 표준을 준수하도록 변경되었습니다. libstdc++ 라이브러리는 이전 및 새 ABI를 모두 지원하지만 다른 C++ 시스템 라이브러리는 지원하지 않습니다. 결과적으로 이러한 라이브러리에 대해 동적으로 연결되는 애플리케이션을 다시 빌드해야 합니다. 이는 C++98을 포함한 모든 C++ 표준 모드에 영향을 미칩니다. 또한 RHEL 7용 Red Hat Developer Toolset 컴파일러를 사용하여 빌드된 애플리케이션에도 영향을 미치므로 시스템 라이브러리와의 호환성을 유지하기 위해 이전 ABI가 유지되었습니다.

GCC는 더 이상 Ada, Go, Obspi C/C++ 코드를 빌드하지 않습니다.

Ada (GNAT), GCC Go 및 intended C/C++ 언어로 코드를 빌드하는 기능이 GCC 컴파일러에서 제거되었습니다.

Go 코드를 빌드하려면 대신 Go Toolset을 사용합니다.

16.2. 컴파일러 도구 세트

RHEL 8에서는 Application Streams로 다음과 같은 컴파일러 툴셋을 제공합니다.

  • LLVM Toolset은 LLVM 컴파일러 인프라 프레임워크, C 및 C++ 언어용 Clang 컴파일러, LLDB 디버거 및 코드 분석을 위한 관련 툴을 제공합니다.
  • rust Toolset은 Rust 프로그래밍 언어 컴파일러 rustc rustc , loaded 빌드 도구 및 종속성 관리자, loaded -vendor 플러그인 및 필수 라이브러리를 제공합니다.
  • Go Toolset은 Go 프로그래밍 언어 도구 및 라이브러리를 제공합니다. go는 golang 라고도 합니다.

사용법에 대한 자세한 내용 및 자세한 내용은 Red Hat Developer Tools 페이지에서 컴파일러 툴셋 사용자 가이드를 참조하십시오.

16.3. RHEL 8의 Java 구현 및 Java 툴

RHEL 8 AppStream 리포지토리에는 다음이 포함됩니다.

  • OpenJDK 11 Java 런타임 환경 및 OpenJDK 11 Java 소프트웨어 개발 키트를 제공하는 java-11-openjdk 패키지
  • OpenJDK 8 Java 런타임 환경 및 OpenJDK 8 Java 소프트웨어 개발 키트를 제공하는 java-1.8.0-openjdk 패키지
  • Java Web Start 구현을 제공하는 아이티타 -웹 패키지.
  • ant 모듈은 Java 애플리케이션을 컴파일, 결합, 테스트 및 실행하는 데 사용할 수 있는 Java 라이브러리 및 명령줄 툴을 제공합니다. an t가 1.10 버전으로 업데이트되었습니다.
  • maven 모듈은 소프트웨어 프로젝트 관리 및 이해 도구를 제공합니다. Maven 은 이전에 소프트웨어 컬렉션 또는 지원되지 않는 선택적 채널에서만 사용할 수 있었습니다.
  • scala 모듈은 Java 플랫폼을 위한 범용 프로그래밍 언어를 제공합니다. Scala 는 이전에는 소프트웨어 컬렉션으로만 사용할 수 있었습니다.

또한 java-1.8.0-ibm 패키지는 Supplementary 리포지토리를 통해 배포됩니다. 이 리포지토리의 패키지는 Red Hat에서 지원되지 않습니다.

16.4. GDB의 호환성 발생 변경 사항

Red Hat Enterprise Linux 8에서 제공되는 GDB 버전에는 특히 Terminal에서 직접 GDB 출력을 읽는 경우의 다양한 변경 사항이 포함되어 있습니다. 다음 섹션에서는 이러한 변경 사항에 대해 자세히 설명합니다.

GDB의 출력 구문 분석은 권장되지 않습니다. Python GDB API 또는 GDB Machine Interface (MI)를 사용하여 스크립트를 선호합니다.

gdbserver가 쉘을 사용하여 유추자 시작

inferior 명령줄 인수에서 확장 및 변수 대체를 활성화하기 위해 GDB와 동일한 쉘에서 inferior를 시작합니다.

쉘을 사용하여 비활성화하려면 다음을 수행합니다.

  • target extended-remote GDB 명령을 사용하는 경우 set startup-with-shell off 명령을 사용하여 쉘을 비활성화합니다.
  • target remote GDB 명령을 사용하는 경우 GDBserver의 --no-startup-with-shell 옵션으로 쉘을 비활성화합니다.

예 16.1. remote GDB inferiors의 쉘 확장 예

이 예에서는 GDBserver를 통해 /bin/echo /* 명령을 실행하는 방법이 Red Hat Enterprise Linux 버전 7 및 8에서 어떻게 다른지 보여줍니다.

  • RHEL 7에서:

    $ gdbserver --multi :1234
    $ gdb -batch -ex 'target extended-remote :1234' -ex 'set remote exec-file /bin/echo' -ex 'file /bin/echo' -ex 'run /*'
    /*
  • RHEL 8에서:

    $ gdbserver --multi :1234
    $ gdb -batch -ex 'target extended-remote :1234' -ex 'set remote exec-file /bin/echo' -ex 'file /bin/echo' -ex 'run /*'
    /bin /boot (...) /tmp /usr /var

GCJ 지원 삭제

GNU Compiler for Java(gcj)로 컴파일된 디버깅 Java 프로그램에 대한 지원이 제거되었습니다.

유지 관리 명령을 덤프하기 위한 새로운 구문

유지 관리 명령 구문을 덤프하는 기호에는 이제 파일 이름 앞에 옵션이 포함됩니다. 결과적으로 RHEL 7에서 GDB에서 작업한 명령은 RHEL 8에서 작동하지 않습니다.

예를 들어 다음 명령은 더 이상 파일에 기호를 저장하지 않지만 오류 메시지를 생성합니다.

(gdb) maintenance print symbols /tmp/out main.c

기호 덤프 유지 관리 명령의 새로운 구문은 다음과 같습니다.

maint print symbols [-pc address] [--] [filename]
maint print symbols [-objfile objfile] [-source source] [--] [filename]
maint print psymbols [-objfile objfile] [-pc address] [--] [filename]
maint print psymbols [-objfile objfile] [-source source] [--] [filename]
maint print msymbols [-objfile objfile] [--] [filename]

스레드 번호는 더 이상 전역이 아닙니다.

이전에는 GDB에서 글로벌 스레드 번호 지정만 사용했습니다. numbering은ferior에 의해,ferior _num.thread_num, (예: 2.1 ) 의 형태로 표시되도록 확장되었다. 결과적으로 $_thread convenience variable의 스레드 번호 및 InferiorThread.num Python 속성은 더 이상 페이오버 간에 고유하지 않습니다.

GDB는 이제 이전 릴리스의 새로운 스레드 번호인 전역 스레드 ID라고 하는 스레드당 두 번째 스레드 ID를 저장합니다. 글로벌 스레드 번호에 액세스하려면 $_gthread convenience variable 및 InferiorThread.global_num Python 속성을 사용합니다.

이전 버전과의 호환성을 위해 MI(Machine Interface) 스레드 ID에는 항상 글로벌 ID가 포함됩니다.

예 16.2. GDB 스레드 번호 변경 예

On Red Hat Enterprise Linux 7:

# debuginfo-install coreutils
$ gdb -batch -ex 'file echo' -ex start -ex 'add-inferior' -ex 'inferior 2' -ex 'file echo' -ex start -ex 'info threads' -ex 'pring $_thread' -ex 'inferior 1' -ex 'pring $_thread'
(...)
  Id   Target Id         Frame
* 2    process 203923 "echo" main (argc=1, argv=0x7fffffffdb88) at src/echo.c:109
  1    process 203914 "echo" main (argc=1, argv=0x7fffffffdb88) at src/echo.c:109
$1 = 2
(...)
$2 = 1

On Red Hat Enterprise Linux 8:

# dnf debuginfo-install coreutils
$ gdb -batch -ex 'file echo' -ex start -ex 'add-inferior' -ex 'inferior 2' -ex 'file echo' -ex start -ex 'info threads' -ex 'pring $_thread' -ex 'inferior 1' -ex 'pring $_thread'
(...)
  Id   Target Id         Frame
  1.1  process 4106488 "echo" main (argc=1, argv=0x7fffffffce58) at ../src/echo.c:109
* 2.1  process 4106494 "echo" main (argc=1, argv=0x7fffffffce58) at ../src/echo.c:109
$1 = 1
(...)
$2 = 1

값 내용의 메모리를 제한할 수 있습니다.

이전에는 GDB가 값 콘텐츠에 할당된 메모리 양을 제한하지 않았습니다. 결과적으로 잘못된 프로그램을 디버깅하면 GDB가 메모리를 너무 많이 할당할 수 있습니다. 할당된 메모리의 양을 제한할 수 있도록 max-value-size 설정이 추가되었습니다. 이 제한의 기본값은 64KiB입니다. 결과적으로 Red Hat Enterprise Linux 8의 GDB는 너무 큰 값을 표시하지는 않지만 대신 값이 너무 클 것으로 보고됩니다.

예를 들어 character s[128*1024] 로 정의된 값을 출력하면 다른 결과가 생성됩니다.

  • Red Hat Enterprise Linux 7에서 $1 = 'A' <repeats 131072 times>
  • Red Hat Enterprise Linux 8에서 값을 사용하려면 max-value-size 이상의 131072 바이트가필요합니다.

Sun 버전의 stab 형식은 더 이상 지원되지 않습니다.

stabs 디버그 파일 형식의 Sun 버전에 대한 지원이 제거되었습니다. gcc -gstabs 옵션을 사용하여 RHEL에서 GCC에서 생성한 stabs 형식은 GDB에서 계속 지원됩니다.

sysroot 처리 변경

set sysroot path 명령은 디버깅에 필요한 파일을 검색할 때 시스템 루트를 지정합니다. 이 명령에 제공되는 디렉토리 이름 앞에는 target: 라는 접두사가 있을 수 있습니다. GDB가 대상 시스템에서 공유 라이브러리를 읽으도록 합니다(로컬 및 원격 모두). 이전에 사용 가능한 remote: 접두사가 target:.로 처리됩니다. 또한 기본 시스템 루트 값은 이전 버전과의 호환성을 위해 빈 문자열에서 target 으로 변경되었습니다.

지정된 시스템 루트는 기본 실행 파일의 파일 이름 앞에 있거나 GDB가 원격으로 프로세스를 시작할 때 또는 이미 실행 중인 프로세스(로컬 및 원격)에 연결되는 경우입니다. 즉, 원격 프로세스의 경우 기본 값 target: GDB가 항상 원격 시스템에서 디버깅 정보를 로드하려고 시도합니다. 이 문제를 방지하려면 대상 원격 명령 앞에 set sysroot 명령을 실행하여 원격 기호 파일보다 먼저 로컬 기호 파일을 찾습니다.

HISTSIZE는 더 이상 GDB 명령 기록 크기를 제어하지 않습니다.

이전에는 GDB에서 HISTSIZE 환경 변수를 사용하여 명령 기록을 유지해야 하는 기간을 결정했습니다. GDB는 GDBHISTSIZE 환경 변수를 대신 사용하도록 변경되었습니다. 이 변수는 GDB에만 해당됩니다. 가능한 값과 그 영향은 다음과 같습니다.

  • 양수 - 이 크기의 명령 기록 사용
  • -1 또는 빈 문자열 - 모든 명령의 기록 유지
  • 숫자가 아닌 값은 무시됩니다.

완료 제한 추가

이제 max-completions 명령을 사용하여 완료되는 최대 후보 수를 제한 할 수 있습니다. 현재 제한을 표시하려면 show max-completions 명령을 실행합니다. 기본값은 200입니다. 이 제한은 GDB가 과도하게 많은 완료 목록을 생성하고 응답하지 않도록 합니다.

예를 들어 p <tab><tab> 이후의 출력은 다음과 같습니다.

  • RHEL 7에서: 29863 가능성을 모두 표시? (y 또는 n)
  • RHEL 8에서: 200개의 가능성을 모두 표시합니까? (y 또는 n)

HP-UX XDB 호환성 모드 제거

HP-UX XDB 호환성 모드의 -xdb 옵션이 GDB에서 제거되었습니다.

스레드에 대한 신호 처리

이전에는 GDB가 신호가 실제로 전송된 스레드 대신 현재 스레드에 신호를 전달할 수 있었습니다. 이 버그가 수정되었으며 GDB는 실행을 다시 시작할 때 항상 올바른 스레드로 신호를 전달합니다.

또한 이제 signal 명령이 요청된 신호를 현재 스레드에 항상 올바르게 전달합니다. 프로그램이 신호에 대해 중지되고 사용자가 스레드를 전환한 경우 GDB에서 확인을 요청합니다.

정지 모드 항상 삽입 및 자동 병합

Breakpoint always-inserted 설정이 변경되었습니다. auto 값과 해당 동작이 제거되었습니다. 기본값은 OFF입니다.The default value is off. 또한 off 값으로 인해 GDB는 모든 스레드가 중지될 때까지 대상에서 정지하지 않도록 합니다.

remotebaud 명령은 더 이상 지원되지 않습니다.

set remotebaudshow remotebaud 명령은 더 이상 지원되지 않습니다. 대신 set serial baud 를 사용하고 serial baud 명령을 표시합니다.

16.5. 컴파일러 및 개발 도구의 호환성 저하 변경 사항

librtkaio 제거

이번 업데이트를 통해 librtkaio 라이브러리가 제거되었습니다. 이 라이브러리는 Linux 커널 비동기 I/O 지원(KAIO)을 기반으로 한 일부 파일에 대해 고성능 비동기 I/O 액세스를 제공했습니다.

제거로 인해:

  • librtkaio 를 로드하기 위해 LD_PRELOAD 방법을 사용하는 애플리케이션에서 누락된 라이브러리에 대한 경고를 표시하고 librt 라이브러리를 로드하고 올바르게 실행합니다.
  • LD_LIBRARY_PATH 방법을 사용하는 애플리케이션은 librt library를 대신 로드하고 경고 없이 올바르게 실행합니다.
  • dlopen() 시스템 호출을 사용하여 librtkaio 에 액세스하는 애플리케이션에서는 librt 라이브러리를 직접 로드합니다.

librtkaio 사용자는 다음과 같은 옵션을 사용할 수 있습니다.

  • 애플리케이션을 변경하지 않고 위에 설명된 대체 메커니즘을 사용합니다.
  • 호환되는 POSIX 호환 API를 제공하는 librt 라이브러리를 사용하도록 애플리케이션 코드를 변경합니다.
  • 호환되는 API를 제공하는 libaio 라이브러리를 사용하도록 애플리케이션 코드를 변경합니다.

librtlibaio 는 모두 특정 조건에서 비교할 수 있는 기능과 성능을 제공할 수 있습니다.

libaio 패키지에는 Red Hat 호환성 수준이 2인 반면 librtklibrtkaio 수준 1이 제거되었습니다.

자세한 내용은 https://fedoraproject.org/wiki/Changes/GLIBC223_librtkaio_removal을 참조하십시오.

glibc에서 삭제되는 Sun RPC 및 NIS 인터페이스

glibc 라이브러리는 더 이상 새 애플리케이션에 대한 Sun RPC 및 NIS 인터페이스를 제공하지 않습니다. 이러한 인터페이스는 이제 레거시 애플리케이션을 실행하는 경우에만 사용할 수 있습니다. 개발자는 NIS 대신 Sun RPC 및 libnsl2 대신 libtirpc 라이브러리를 사용하도록 애플리케이션을 변경해야 합니다. 애플리케이션은 교체 라이브러리에서 IPv6 지원의 이점을 얻을 수 있습니다.

32비트 Xen용 nosegneg 라이브러리가 제거되었습니다.

이전에는 glibc i686 패키지에는 대체 glibc 빌드가 포함되어 있어 스레드 설명자 세그먼트를 음수 오프셋(nosegneg)으로 등록하지 못했습니다. 이러한 대체 빌드는 하드웨어 가상화 지원 없이 32비트 버전의 Xen Project 하이퍼바이저에서만 사용되어 전체 반가상화 비용을 줄이기 위한 최적화로 사용되었습니다. 이러한 대체 빌드는 더 이상 사용되지 않으며 제거되었습니다.

새 연산자를 만듭니다 != 은 기존 makefile 구문을 다르게 해석합니다.

$(shell …​ 대신 GNU make!= 쉘 할당 연산자가 추가되었습니다.) BSD makefile과의 호환성을 높이기 위한 기능입니다. 결과적으로 이름이 느낌표로 끝나는 변수와 variable!=value 와 같은 할당이 바로 뒤에 쉘 할당으로 해석됩니다. 이전 동작을 복원하려면 variable! =value와 같이 느낌표 뒤에 공백을 추가하십시오.

연산자와 함수 간 차이점에 대한 자세한 내용은 GNU make 매뉴얼을 참조하십시오.

MPI 디버깅 지원을 위한 Valgrind 라이브러리 제거

valgrind-openmpi 패키지에서 제공하는 Valgrind 에 대한 libmpiwrap.so 래퍼 라이브러리가 제거되었습니다. 이 라이브러리를 통해 Valgrind 에서 Message Passing Interface(MPI)를 사용하여 프로그램을 디버그할 수 있었습니다. 이 라이브러리는 이전 버전의 Red Hat Enterprise Linux에서 Open MPI 구현 버전에 한정되었습니다.

libmpiwrap.so 사용자는 MPI 구현 및 버전에 따라 업스트림 소스에서 자체 버전을 빌드하는 것이 좋습니다. LD_PRELOAD 기술을 사용하여 이러한 사용자 정의 라이브러리를 Valgrind 에 제공합니다.

개발 헤더 및 정적 라이브러리가 valgrind-devel에서 제거됨

이전 버전에서는 사용자 지정 valgrind 툴을 개발하기 위한 개발 파일을 포함하는 데 사용되는 valgrind-devel 하위 패키지 이번 업데이트에서는 보장된 API가 없으므로 이러한 파일을 제거하고 정적으로 연결해야 하며 지원되지 않습니다. valgrind-devel 패키지에는 여전히 valgrind-aware 프로그램과 같은 valgrind 프로그램 및 헤더 파일(예: valgrind.h,drd.h, helgrind.h ,helgrind.h, memcheck.h )이 포함되어 있습니다. 이는 안정적이고 잘 지원되지 않습니다.

17장. IdM (Identity Management)

17.1. Identity Management 패키지는 모듈로 설치됨

RHEL 8에서는 IdM(Identity Management) 서버 및 클라이언트를 설치하는 데 필요한 패키지가 모듈로 배포됩니다. 클라이언트 스트림은 idm 모듈의 기본 스트림이며 스트림을 활성화하지 않고 클라이언트를 설치하는 데 필요한 패키지를 다운로드할 수 있습니다.

IdM 서버 모듈 스트림은 DL1 이라고 하며 다양한 유형의 IdM 서버에 해당하는 여러 프로필을 포함합니다.

  • server: 통합 DNS가 없는 IdM 서버
  • DNS: 통합된 DNS가 있는 IdM 서버
  • adtrust: Active Directory와의 신뢰 관계가 있는 IdM 서버
  • 클라이언트: IdM 클라이언트

DL1 스트림의 특정 프로필에 있는 패키지를 다운로드하려면 다음을 수행합니다.

  1. 스트림을 활성화합니다.

    # yum module enable idm:DL1
  2. 스트림을 통해 전달된 RPM으로 전환합니다.

    # yum distro-sync
  3. 선택한 프로필을 설치합니다.

    # yum module install idm:DL1/profile

    profile 을 위에서 정의한 특정 프로필 중 하나로 바꿉니다.

자세한 내용은 Identity Management 서버 및 Identity Management 클라이언트를 설치하는 데 필요한 패키지 설치를 참조하십시오.

17.2. Active Directory 사용자가 Identity Management를 관리 가능

RHEL (Red Hat Enterprise Linux) 7에서 AD 사용자 및 그룹은 SSSD(System Security Services Daemon)를 사용하여 POSIX 환경에서 IdM 리소스에 액세스할 수 있습니다.

IdM LDAP 서버에는 액세스 제어 권한을 부여하는 자체 메커니즘이 있습니다. RHEL 8에서는 AD 사용자의 ID 사용자 재정의를 IdM 그룹의 멤버로 추가할 수 있는 업데이트가 도입되었습니다. ID 재정의는 특정 ID 보기(이 경우 기본 신뢰 보기) 내에서 특정 Active Directory 사용자 또는 그룹 속성이 어떻게 보이는지를 설명하는 레코드입니다. 업데이트 결과 IdM LDAP 서버에서 IdM 그룹에 대한 액세스 제어 규칙을 AD 사용자에게 적용할 수 있습니다.

이제 AD 사용자가 IdM UI의 셀프 서비스 기능을 사용하여 SSH 키를 업로드하거나 개인 데이터를 변경하는 등의 작업을 수행할 수 있습니다. AD 관리자가 두 개의 서로 다른 계정 및 암호 없이도 IdM을 완전히 관리할 수 있습니다.

참고

현재 AD 사용자는 IdM에서 선택한 기능을 계속 사용할 수 없습니다. 예를 들어 IdM admins 그룹에서 AD 사용자로 IdM 사용자 암호를 설정하지 못할 수 있습니다.

17.3. IdM은 설치 및 관리를 위한 Ansible 역할 및 모듈 지원

Red Hat Enterprise Linux 8.1에는 IdM(Identity Management) 배포 및 관리를 위한 Ansible 역할 및 모듈을 제공하는 ansible-freeipa 패키지가 도입되었습니다. Ansible 역할을 사용하여 IdM 서버, 복제본 및 클라이언트를 설치하고 제거할 수 있습니다. Ansible 모듈을 사용하여 IdM 그룹, 토폴로지 및 사용자를 관리할 수 있습니다. 사용 가능한 예제 플레이북도 있습니다.

이번 업데이트에서는 IdM 기반 솔루션의 설치 및 구성을 간소화합니다.

17.4. Ansible-freeipa 는 모든 종속 항목이 있는 AppStream 리포지토리에서 사용 가능

RHEL 8.6부터 ansible -freeipa 패키지를 설치하면 더 기본적인 ansible 버전인 ansible-core 패키지가 종속성으로 자동으로 설치됩니다. ansible-freeipaansible-core 둘 다 rhel-9-for-x86_64-appstream-rpms 리포지토리에서 사용할 수 있습니다.

RHEL 8.6의 Ansible-freeipa 에는 RHEL 8.6 이전에 포함된 모든 모듈이 포함되어 있습니다.

RHEL 8.6 이전에는 Ansible 리포지토리를 활성화하고 ansible 패키지를 설치해야 했습니다. 그런 다음만 ansible-freeipa 를 설치할 수 있습니다.

17.5. 기존 RHEL ansible-freeipa 리포지토리의 대안: Ansible Automation Hub

Red Hat Enterprise Linux 8.6부터는 표준 RHEL 리포지토리에서 다운로드하는 대신 Ansible Automation Hub(AAH)에서 ansible-freeipa 모듈을 다운로드할 수 있습니다. AAH를 사용하면 이 리포지토리에서 사용할 수 있는 ansible-freeipa 모듈의 빠른 업데이트를 활용할 수 있습니다.

AAH에서 ansible-freeipa 역할 및 모듈은 컬렉션 형식으로 배포됩니다. AAH 포털의 콘텐츠에 액세스하려면 AAP(Ansible Automation Platform) 서브스크립션이 필요합니다. 또한 ansible 버전 2.14 이상이 필요합니다.

redhat.rhel_idm 컬렉션에는 기존 ansible-freeipa 패키지와 동일한 콘텐츠가 있습니다. 그러나 컬렉션 형식은 네임스페이스와 컬렉션 이름으로 구성된 정규화된 컬렉션 이름(FQCN)을 사용합니다. 예를 들어 redhat.rhel_idm.ipadnsconfig 모듈은 RHEL 리포지토리에서 제공하는 ansible-freeipaipadnsconfig 모듈에 해당합니다. 네임스페이스와 컬렉션 이름을 조합하면 개체가 고유하며 충돌 없이 공유할 수 있습니다.

17.6. RHEL 8의 세션 레코딩 솔루션 추가

세션 레코딩 솔루션이 RHEL 8(Red Hat Enterprise Linux 8)에 추가되었습니다. 새로운 tlog 패키지와 관련 웹 콘솔 세션 플레이어를 사용하여 사용자 터미널 세션을 레코딩하고 재생할 수 있습니다. SSSD(System Security Services Daemon) 서비스를 통해 사용자 또는 사용자 그룹별로 레코딩을 구성할 수 있습니다. 모든 터미널 입력 및 출력은 캡처되어 시스템 저널에 텍스트 기반 형식으로 저장됩니다. 보안상의 이유로 원시 암호 및 기타 중요한 정보를 가로채지 않도록 입력은 기본적으로 비활성화됩니다.

이 솔루션은 보안에 민감한 시스템에서 사용자 세션을 감사하는 데 사용할 수 있습니다. 보안 위반이 발생한 경우 기록된 세션을 법의학 분석의 일부로 검토할 수 있습니다. 이제 시스템 관리자는 세션 레코딩을 로컬로 설정하고 tlog-play 유틸리티를 사용하여 명령행 인터페이스 또는 RHEL 8 웹 콘솔 인터페이스의 결과를 볼 수 있습니다.

17.7. ID 관리 제거 기능

17.7.1. NTP Server IdM 서버 역할 없음

ntpd 는 RHEL 8의 chronyd 를 대신하기 때문에 IdM 서버는 더 이상 NTP(Network Time Protocol) 서버로 구성되지 않으며 NTP 클라이언트로만 구성됩니다. RHEL 7 NTP Server IdM 서버 역할도 RHEL 8에서 더 이상 사용되지 않습니다.

17.7.2. OpenLDAP에서 NSS 데이터베이스가 지원되지 않음

이전 버전의 RHEL(Red Hat Enterprise Linux)의 OpenLDAP 제품군은 암호화 목적으로 Mozilla Network Security Services (NSS)를 사용했습니다. RHEL 8을 사용하면 OpenLDAP 커뮤니티에서 지원하는 OpenSSL이 NSS를 대체합니다. OpenSSL은 인증서 및 키를 저장하기 위해 NSS 데이터베이스를 지원하지 않습니다. 그러나 동일한 목적을 제공하는 개인 정보 보호 강화 메일 (PEM) 파일을 계속 지원합니다.

17.7.3. 선택된 Python Kerberos 패키지가 교체되었습니다.

RHEL (Red Hat Enterprise Linux) 8에서 python-gssapi 패키지는 python-krbV,python-kerberos,python-requests-kerberos, python-urllib2_kerberos 와 같은 Python Kerberos 패키지를 대체했습니다. 주요 이점은 다음과 같습니다.

  • python-gssapipython-kerberospython-krbV 보다 쉽게 사용할 수 있습니다.
  • python-gssapipython 2python 3 을 모두 지원하지만 python-krbV 는 지원하지 않습니다.
  • 추가 Kerberos 패키지, python-requests-gssapipython-urllib-gssapi.com은 현재 Extra Packages for Enterprise Linux (EPEL) 리포지토리에서 사용할 수 있습니다.

GSSAPI 기반 패키지를 사용하면 이전 버전과의 호환성을 위해 Kerberos와 같은 Kerberos 외에 기타 일반 보안 서비스 API(GSSAPI) 메커니즘을 사용할 수 있습니다.

이번 업데이트에서는 RHEL 8에서 GSSAPI의 유지 관리 및 디버깅 가능성이 향상되었습니다.

17.8. SSSD

17.8.1. 이제 AD rshs가 기본적으로 적용됩니다.

RHEL 8에서는 ad_gpo_access_control 옵션에 대한 기본 설정이 강제 적용되어 Active Directory Group Policy Objects(GPO)를 기반으로 하는 액세스 제어 규칙이 평가되고 적용됩니다.

반대로 RHEL 7에서 이 옵션의 기본값은 허용 이며, 이 권한은 JWT 기반 액세스 제어 규칙을 평가하지만 적용하지는 않습니다. 허용 모드를 사용하면 grant 사용자가 access를 거부할 때마다 syslog 메시지가 기록되지만 해당 사용자는 계속 로그인할 수 있습니다.

참고

Red Hat은 RHEL 7에서 RHEL 8로 업그레이드하기 전에 active Directory에IMG를 올바르게 구성하는 것이 좋습니다.

기본 RHEL 7 호스트에서 권한 부여에 영향을 미치지 않는 misconfigured rshs는 기본 RHEL 8 호스트에 영향을 줄 수 있습니다.

GPO에 대한 자세한 내용은 RHEL의 그룹 정책 오브젝트 액세스 제어 적용sssd-ad 설명서 페이지의 ad_gpo_access_control 항목을 참조하십시오.

17.8.2. authconfig대체하는 Authselect

RHEL 8에서 authselect 유틸리티 대신 authconfig 유틸리티를 대체합니다. authselect 는 시스템 관리자에게 PAM 구성 변경을 더 간단하게 만들 수 있는 PAM 스택 관리에 대한 보다 안전한 접근 방식을 제공합니다. authselect 는 암호, 인증서, 스마트 카드 및 지문과 같은 인증 방법을 구성하는 데 사용할 수 있습니다. authselect 는 원격 도메인에 가입하는 데 필요한 서비스를 구성하지 않습니다. 이 작업은 realmd 또는 ipa-client-install 과 같은 특수 툴에 의해 수행됩니다.

17.8.3. KCM은 KEYRING을 기본 인증 정보 캐시 스토리지로 대체

RHEL 8에서 기본 인증 정보 캐시 스토리지는 sssd-kcm 데몬에서 지원하는 KCM(Kerberos Credential Manager)입니다. KCM에는 이전에 사용된 KEYRING의 제한 사항(예:네임 스페이스가 없기 때문에 컨테이너 환경에서 사용하기가 어렵고 할당량을 표시 및 관리할 수 없음)이 해결되어 있습니다.

이번 업데이트를 통해 RHEL 8에는 컨테이너화된 환경에 더 적합하고 향후 릴리스에서 보다 많은 기능을 빌드할 수 있는 기반을 제공하는 인증 정보 캐시가 제공됩니다.

17.8.4. sssctl을 통해 IdM 도메인의 HBAC 규칙 보고서 출력

이번 업데이트에서 SSSD(System Security Services Daemon)의 sssctl 유틸리티를 통해 IdM(Identity Management) 도메인의 액세스 제어 보고서를 출력할 수 있습니다. 이는 특정 환경에서 규제상의 이유로 특정 클라이언트 컴퓨터에 액세스할 수 있는 사용자 및 그룹 목록을 표시하는 기능으로 사용될 수 있습니다. IdM 클라이언트에서 sssctl access-report domain_name을 실행하면 클라이언트 시스템에 적용되는 IdM 도메인의 호스트 기반 액세스 제어(HBAC) 규칙의 구문 분석된 하위 세트를 표시합니다.

IdM 이외의 모든 공급자는 이 기능을 지원하지 않습니다.

17.8.5. RHEL 8.8부터 SSSD는 더 이상 로컬 사용자를 캐시하지 않으며 nss_sss 모듈을 통해 로컬 사용자를 캐시하지 않습니다.

RHEL 8.8 이상에서는 /etc/passwd/etc/group 파일에서 사용자 및 그룹에 서비스를 제공하는 SSSD(System Security Services Daemon) 파일 공급자가 기본적으로 비활성화되어 있습니다. /etc/sssd/sssd.conf 구성 파일의 enable_files_domain 설정 기본값은 false 입니다.

RHEL 8.7 및 이전 버전의 경우 SSSD 파일 공급자가 기본적으로 활성화되어 있습니다. sssd.conf 구성 파일의 enable_ files _domain 설정 기본값은 true 이고 sss nsswitch 모듈은 /etc/nsswitch.conf 파일의 파일 앞에 있습니다.

17.8.6. SSSD를 사용하면 여러 스마트 카드 인증 장치 중 하나를 선택할 수 있습니다.

기본적으로 SSSD(System Security Services Daemon)는 스마트 카드 인증에 대한 장치를 자동으로 감지합니다. 여러 장치가 연결되어 있으면 SSSD에서 먼저 탐지하는 장치를 선택합니다. 결과적으로 특정 장치를 선택할 수 없으므로 실패가 발생하는 경우도 있습니다.

이번 업데이트를 통해 sssd.conf 구성 파일의 [pam] 섹션에 새 p11_uri 옵션을 구성할 수 있습니다. 이 옵션을 사용하면 스마트 카드 인증에 사용되는 장치를 정의할 수 있습니다.

예를 들어 OpenSC PKCS#11 모듈에서 감지한 슬롯 ID 2 가 있는 리더를 선택하려면 다음을 추가합니다.

p11_uri = library-description=OpenSC%20smartcard%20framework;slot-id=2

sssd.conf[pam] 섹션에 추가합니다.

자세한 내용은 man sssd.conf 페이지를 참조하십시오.

17.9. 제거된 SSSD 기능

17.9.1. sssd-secrets 가 제거됨

Red Hat Enterprise Linux 8에서 SSSD(System Security Services Daemon)의 sssd-secrets 구성 요소가 제거되었습니다. 이는 보안 서비스 공급자인 Custodia가 더 이상 활발하게 개발되지 않았기 때문입니다. 다른 Identity 관리 툴을 사용하여 시크릿을 저장합니다(예: Identity Management Vault).

17.9.2. SSSD 버전의 libwbclient가 제거되었습니다.

libwbclient 패키지의 SSSD 구현으로 인해 winbind 서비스를 실행할 필요 없이 Samba ClusterRoled 서비스에서 AD에서 사용자 및 그룹 정보를 검색할 수 있었습니다. Samba에서 이제 winbind 서비스가 실행 중이고 AD와의 통신을 처리해야 하므로 보안상의 이유로 관련 코드가 smdb 에서 제거되었습니다. 이 추가 필수 기능은 SSSD의 일부가 아니며 libwbclient 의 SSSD를 최신 버전의 Samba와 함께 사용할 수 없으므로 RHEL 8.5에서는 libwbclient 의 SSSD 구현이 제거되었습니다.

18장. 웹 콘솔

18.1. 웹 콘솔을 기본적으로 사용 가능

Cockpit이라고도 하는 RHEL 8 웹 콘솔용 패키지는 이제 Red Hat Enterprise Linux 기본 리포지토리의 일부이므로 등록된 RHEL 8 시스템에 즉시 설치할 수 있습니다.

또한 최소 설치가 아닌 설치에서는 RHEL 8에 웹 콘솔이 자동으로 설치되고 콘솔에 필요한 방화벽 포트가 자동으로 열립니다.

로그인하기 전에 웹 콘솔을 사용으로 설정하거나 액세스하는 방법에 관한 정보를 제공하는 시스템 메시지도 추가되었습니다.

18.2. 새로운 방화벽 인터페이스

RHEL 8 웹 콘솔의 네트워킹 탭에 이제 방화벽 설정이 포함됩니다. 이 섹션에서는 다음을 수행할 수 있습니다.

  • 방화벽 활성화/비활성화
  • 서비스 추가/제거

자세한 내용은 웹 콘솔을 사용하여 방화벽 관리를 참조하십시오.

18.3. 서브스크립션 관리

RHEL 8 웹 콘솔은 로컬 시스템에 설치된 Red Hat Subscription Manager를 사용하기 위한 인터페이스를 제공합니다. 서브스크립션 관리자는 Red Hat 고객 포털에 연결하여 사용 가능한 모든 항목을 확인합니다.

  • 활성 서브스크립션
  • 만료된 서브스크립션
  • 갱신된 서브스크립션

서브스크립션을 갱신하거나 Red Hat 고객 포털에서 다른 정보를 얻으려면 서브스크립션 관리자 데이터를 수동으로 업데이트할 필요가 없습니다. 서브스크립션 관리자는 Red Hat 고객 포털과 자동으로 데이터를 동기화합니다.

참고

웹 콘솔의 서브스크립션 페이지는 이제 새로운 subscription-manager-cockpit 패키지에서 제공합니다.

자세한 내용은 웹 콘솔에서 서브스크립션 관리를 참조하십시오.

18.4. 웹 콘솔 용 IdM 통합 개선

시스템이 IdM(Identity Management) 도메인에 등록된 경우 이제 RHEL 8 웹 콘솔에서 기본적으로 도메인의 중앙 관리 IdM 리소스를 사용합니다. 여기에는 다음과 같은 이점이 있습니다.

  • IdM 도메인 관리자가 웹 콘솔을 사용하여 로컬 시스템을 관리할 수 있습니다.
  • 콘솔의 웹 서버는 IdM 인증 기관 (CA)에서 발급하여 브라우저에서 승인하는 인증서로 자동 전환합니다.
  • IdM 도메인의 Kerberos 티켓이 있는 사용자는 웹 콘솔에 액세스하기 위해 로그인 인증 정보를 제공하지 않아도 됩니다.
  • IdM 도메인에서 인식되는 SSH 호스트는 수동으로 SSH 연결을 추가하지 않아도 웹 콘솔에 액세스할 수 있습니다.

웹 콘솔과 IdM 통합이 제대로 작동하려면 먼저 IdM 서버에서 enable-admins-sudo 옵션을 사용하여 ipa-advise 유틸리티를 실행해야 합니다.

18.5. 웹 콘솔은 모바일 브라우저와 호환 가능

이번 업데이트 통해 모바일 브라우저 변형에서 웹 콘솔 메뉴 및 페이지를 탐색할 수 있습니다. 따라서 모바일 장치에서 RHEL 8 웹 콘솔을 사용하여 시스템을 관리할 수 있습니다.

18.6. 웹 콘솔의 첫 페이지에 누락된 업데이트 및 서브스크립션 표시

RHEL 8 웹 콘솔에서 관리하는 시스템의 패키지가 오래되었거나 서브스크립션이 만료된 경우 시스템의 웹 콘솔의 첫 페이지에 경고가 표시됩니다.

18.7. 웹 콘솔에서 PBD 등록 지원

이번 업데이트를 통해 RHEL 8 웹 콘솔 인터페이스를 사용하여 관리되는 시스템의 디스크에 PBD(Policy-Based Decryption) 규칙을 적용할 수 있습니다. Clevis 암호 해독 클라이언트를 사용하여 LUKS 암호화 디스크 파티션의 자동 잠금 해제와 같은 웹 콘솔의 다양한 보안 관리 기능을 용이하게 합니다.

18.8. LUKS v2 지원

웹 콘솔의 스토리지 탭에서 LUKS(Linux Unified Key Setup) 버전 2 형식을 사용하여 암호화된 장치를 생성, 잠금, 잠금, 잠금, 크기 조정 및 구성할 수 있습니다.

LUKS의 새 버전은 다음과 같습니다.

  • 보다 유연한 잠금 정책
  • 강력한 암호화
  • 향후 변경 사항과의 호환성 개선

18.9. 웹 콘솔을 사용하여 가상 머신을 관리할 수 있습니다.

이제 가상 머신 페이지를 RHEL 8 웹 콘솔 인터페이스에 추가할 수 있으므로 사용자가 libvirt 기반 가상 머신을 생성하고 관리할 수 있습니다.

웹 콘솔과 가상 머신 관리자 간의 가상 관리 기능의 차이점에 대한 자세한 내용은 Virtual Machine Manager 및 웹 콘솔의 가상화 기능 차이를 참조하십시오.

18.10. 웹 콘솔에서 지원되지 않는 Internet Explorer

Internet Explorer 브라우저에 대한 지원은 RHEL 8 웹 콘솔에서 제거되었습니다. Internet Explorer에서 웹 콘솔을 열려고 하면 권장 브라우저 목록을 대신 사용할 수 있는 오류 화면이 표시됩니다.

19장. 가상화

19.1. 웹 콘솔을 사용하여 가상 머신을 관리할 수 있습니다.

이제 가상 머신 페이지를 RHEL 8 웹 콘솔 인터페이스에 추가할 수 있으므로 사용자가 libvirt 기반 가상 머신(VM)을 생성하고 관리할 수 있습니다.

또한virt-manager(Virtual Machine Manager) 애플리케이션은 더 이상 사용되지 않으며 향후 RHEL 주요 릴리스에서 지원되지 않을 수 있습니다.

그러나 웹 콘솔에서 현재 virt-manager 가 수행하는 모든 가상 관리 기능을 제공하지는 않습니다. RHEL 8 웹 콘솔과 가상 머신 관리자 간의 사용 가능한 기능의 차이점에 대한 자세한 내용은 가상화 문서 구성 및 관리를 참조하십시오.

19.2. 가상화에서 Q35 시스템 유형 지원

Red hat Enterprise Linux 8은 최신 PCI Express 기반 시스템 유형인 Q35에 대한 지원을 도입했습니다. 이를 통해 가상 장치의 기능 및 성능이 다양하게 개선되고 광범위한 최신 장치가 가상화와 호환될 수 있습니다. 또한 Red Hat Enterprise Linux 8에서 생성된 가상 머신은 기본적으로 Q35를 사용하도록 설정되어 있습니다.

이전의 기본 PC 머신 유형은 더 이상 사용되지 않으며 향후 RHEL 주요 릴리스에서 지원되지 않을 수 있습니다. 그러나 기존 VM의 시스템 유형을 PC 에서 Q35 로 변경하는 것은 권장되지 않습니다.

PCQ35 의 주요 차이점은 다음과 같습니다.

  • Windows XP와 같은 이전 운영 체제는 Q35를 지원하지 않으며 Q35 VM에서 사용하는 경우 부팅되지 않습니다.
  • 현재 Q35 VM에서 RHEL 6을 운영 체제로 사용할 때 PCI 장치를 해당 VM에 핫 플러그하는 것이 작동하지 않는 경우도 있습니다. 또한 특정 레거시 virtio 장치는 RHEL 6 Q35 VM에서 제대로 작동하지 않습니다.

    따라서 RHEL 6 VM에 PC 시스템 유형을 사용하는 것이 좋습니다.

  • Q35는 PCI 대신 PCI Express(PCI-e) 버스를 에뮬레이션합니다. 결과적으로 게스트 OS에 다른 장치 토폴로지 및 주소 지정 체계가 제공됩니다.
  • Q35에는 IDE 컨트롤러 대신 내장 SATA/AHCI 컨트롤러가 있습니다.
  • SecureBoot 기능은 Q35 VM에서만 작동합니다.

19.3. 제거된 가상화 기능

cpu64rhel6 CPU 모델이 더 이상 사용되지 않고 제거되었습니다.

cpu64rhel6 QEMU 가상 CPU 모델은 RHEL 8.1에서 더 이상 사용되지 않으며 RHEL 8.2에서 제거되었습니다. 호스트 머신에 있는 CPU에 따라 QEMU 및 libvirt 에서 제공하는 다른 CPU 모델을 사용하는 것이 좋습니다.

IVSHMEM이 비활성화되었습니다.

여러 가상 머신 간에 공유 메모리를 제공하는 IVSHMEM(Inter-VM 공유 메모리 장치) 기능이 Red Hat Enterprise Linux 8에서 비활성화되어 있습니다. 이 장치로 구성된 가상 머신은 부팅에 실패합니다. 마찬가지로 장치 장치도 핫 플러그를 시도하지 않습니다.

virt-install 은 더 이상 NFS 위치를 사용할 수 없습니다.

이번 업데이트를 통해 virt-install 유틸리티는 NFS 위치를 마운트할 수 없습니다. 결과적으로 NFS 주소와 함께 virt-install--location 옵션의 값으로 사용하여 가상 머신을 설치하려고 하면 실패합니다. 이 변경 사항을 해결하려면 virt-install 을 사용하기 전에 NFS 공유를 마운트하거나 HTTP 위치를 사용하십시오.

RHEL 8에서는 tulip 드라이버를 지원하지 않습니다.

이번 업데이트에서는 tulip 네트워크 드라이버가 더 이상 지원되지 않습니다. 결과적으로 Microsoft Hyper-V 하이퍼바이저의 1세대 VM(가상 머신)에서 RHEL 8을 사용할 때 " legacy Network Adapter" 장치가 작동하지 않으므로 이러한 VM의 PXE 설치가 실패합니다.

PXE 설치가 작동하려면 세대 2 Hyper-V VM에 RHEL 8을 설치합니다. RHEL 8 생성 1 VM이 필요한 경우 ISO 설치를 사용하십시오.

LSI logic SAS 및 Parallel SCSI 드라이버는 지원되지 않습니다.

SCSI에 대한 LSI logic SAS 드라이버(MPtsas) 및 LSI logic Parallel 드라이버(MPtspi)는 더 이상 지원되지 않습니다. 따라서 이 드라이버는 VMWare 하이퍼바이저의 게스트 운영 체제로 RHEL 8을 SCSI 디스크에 설치하는 데 사용할 수 있지만 생성된 VM은 Red Hat에서 지원하지 않습니다.

virtio-win을 설치하면 Windows 드라이버가 있는 디스크 이미지가 더 이상 생성되지 않습니다.

플로피 드라이브의 제한으로 인해 virtio-win 드라이버는 더 이상 플로피 이미지로 제공되지 않습니다. 대신 ISO 이미지를 사용해야 합니다.

20장. 컨테이너

Red Hat Enterprise Linux 8에서는 컨테이너 이미지 집합을 사용할 수 있습니다. 주요 변경 사항은 다음과 같습니다.

  • Docker가 RHEL 8.0에 포함되어 있지 않습니다. 컨테이너 작업을 할 때는 podman, buildah, skopeorunc 툴을 사용하십시오.

    RHEL 8에서 이러한 툴과 컨테이너 사용에 대한 자세한 내용은 컨테이너 빌드, 실행 및 관리를 참조하십시오.

  • podman 툴의 기능이 완전하게 지원됩니다.

    podman 툴은 단일 노드에서 pod, 컨테이너 이미지 및 컨테이너를 관리합니다. Pod라고 하는 컨테이너 및 컨테이너 그룹을 관리할 수 있는 libpod 라이브러리를 기반으로 합니다.

    podman 사용 방법에 대한 자세한 내용은 Building, running, and managing containers를 참조하십시오.

  • RHEL 8 GA에서는 Red Hat Universal Base Images (UBI)가 새롭게 제공됩니다. UBI는 표준 및 최소 RHEL 기반 이미지와 같이 Red Hat에서 이전에 제공한 이미지의 일부를 교체합니다.

    이전 Red Hat 이미지와 달리 UBI는 자유롭게 재배포가 가능합니다. 즉, 모든 환경에서 사용하고 어디에서나 공유할 수 있습니다. Red Hat 고객이 아니어도 사용할 수 있습니다.

    UBI에 대한 자세한 내용은 Building, running, and managing containers를 참조하십시오.

  • RHEL 8 GA에서는 AppStream 구성 요소를 제공하는 추가 컨테이너 이미지를 사용할 수 있으며, RHEL 7에서는 컨테이너 이미지가 Red Hat Software Collections와 함께 배포됩니다. 이러한 모든 RHEL 8 이미지는 ubi8 기본 이미지를 기반으로 합니다.
  • 64bit ARM 아키텍처용 컨테이너 이미지는 RHEL 8에서 완벽하게 지원됩니다.
  • RHEL 8에서는 rhel-tools 컨테이너가 제거되었습니다. sos 및 redhat-support-tool 툴은 support-tools 컨테이너에서 제공됩니다. sosredhat-support-tool 툴은 support-tools 컨테이너에 제공됩니다. 시스템 관리자는 이 이미지를 시스템 툴 컨테이너 이미지를 빌드하기 위한 기반으로 사용할 수도 있습니다.
  • 루트리스(rootless) 컨테이너에 대한 지원은 RHEL 8에서 기술 프리뷰로 사용할 수 있습니다.

    루트리스(rootless) 컨테이너는 관리자 권한 없이 일반 시스템 사용자가 생성 및 관리하는 컨테이너입니다.

21장. 데스크탑 및 그래픽

21.1. GNOME Shell은 기본 데스크탑 환경입니다.

RHEL 8은 기본 데스크탑 환경으로 GNOME 쉘과 함께 배포됩니다.

DestinationRule Plasma Workspaces(KDE)와 관련된 모든 패키지가 제거되었으며 더 이상 기본 GNOME 데스크탑 환경 대신ECDHE을 사용할 수 없습니다.

Red Hat은 DestinationRule을 사용하는 RHEL 7에서 RHEL 8 GNOME으로의 마이그레이션을 지원하지 않습니다. ECDHE이 적용된 RHEL 7 사용자는 데이터를 백업하고 GNOME Shell을 사용하여 RHEL 8을 설치하는 것이 좋습니다.

21.2. GNOME 쉘에서 주요 변경 사항

RHEL 8은 GNOME 쉘 버전 3.28과 함께 배포됩니다.

이 섹션:

  • GNOME 쉘 버전 3.28과 관련된 개선 사항을 강조합니다.
  • GNOME Shell 환경의 기본 조합 변경 사항 및 표시 프로토콜을 알려줍니다.
  • 기본적으로 사용할 수 없는 기능에 액세스하는 방법을 설명합니다.
  • 소프트웨어 관리를 위한 GNOME 도구의 변경 사항을 설명합니다.

21.2.1. RHEL 8의 GNOME 쉘 (버전 3.28)

RHEL 8에서는 GNOME 쉘 버전 3.28을 사용할 수 있습니다. 주요 개선 사항은 다음과 같습니다.

  • 새로운 GNOME Boxes 기능
  • 새로운 온-스크린 키보드
  • 장치 지원 확장 (특히 Thunderbolt 3 인터페이스의 통합)
  • GNOME 소프트웨어, dconf-editor 및 GNOME 터미널 개선

21.2.2. GNOME 쉘 환경

GNOME 3에서는 다음과 같은 두 가지 필수 환경을 제공합니다.

  • GNOME 표준
  • GNOME Classic

두 환경 모두 두 개의 다른 프로토콜을 사용하여 그래픽 사용자 인터페이스를 빌드할 수 있습니다.

  • X.Org 를 디스플레이 서버로 사용하는 X11 프로토콜입니다.
  • GNOME 쉘Wayland 컴포저 및 디스플레이 서버로 사용하는 Wayland 프로토콜.

    이 디스플레이 서버의 솔루션을 Wayland에서 GNOME 쉘 이라고 합니다.

RHEL 8의 기본 조합은 Wayland의 GNOME 쉘을 디스플레이 서버로 사용하는 GNOME 표준 환경입니다.

그러나 GNOME Shell 환경 및 그래픽 프로토콜 스택의 다른 조합으로 전환할 수 있습니다. 자세한 내용은 21.3절. “GNOME 환경 및 표시 프로토콜 선택”의 내용을 참조하십시오.

추가 리소스

  • 두 GNOME 쉘 환경 사용에 대한 기본 사항에 대한 자세한 내용은 GNOME 환경 개요 를 참조하십시오.

21.2.3. 데스크탑 아이콘

RHEL 8에서는 desktop 아이콘 기능은 FlexVolume 파일 관리자에서 더 이상 제공되지 않지만 데스크탑 아이콘 gnome-shell 확장에 의해 제공됩니다.

확장을 사용하려면 Appstream 리포지토리에서 사용할 수 있는 gnome-shell-extension-ECDHE-icons 패키지를 설치해야 합니다.

추가 리소스

21.2.4. 부분적인 스케일링

Wayland 세션의 GNOME 쉘에서 부분 스케일링 기능을 사용할 수 있습니다. 이 기능을 사용하면 GUI를 일부 비율로 확장할 수 있으므로 특정 디스플레이에서 확장된 GUI의 모양을 개선할 수 있습니다.

이 기능은 현재 실험적인 것으로 간주되므로 기본적으로 비활성화되어 있습니다.

부분적인 스케일링을 활성화하려면 다음 명령을 실행합니다.

# gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

21.2.5. 패키지 관리를 위한 GNOME 소프트웨어

RHEL 7의 그래픽 환경에서 패키지 관리용 툴 컬렉션을 제공한 gnome-packagekit 패키지는 더 이상 사용할 수 없습니다.

RHEL 8에서는 애플리케이션과 gnome-shell 확장 기능을 설치 및 업데이트할 수 있는 GNOME 소프트웨어 유틸리티에서 유사한 기능을 제공합니다. GNOME 소프트웨어gnome-software 패키지로 배포됩니다.

추가 리소스

  • GNOME 소프트웨어를 사용한 애플리케이션 설치에 대한 자세한 내용은 GNOME 에서 애플리케이션 설치를 참조하십시오.

21.2.6. sudo를 사용하여 그래픽 애플리케이션 열기

sudo 명령을 사용하여 터미널에서 그래픽 애플리케이션을 열려고 시도할 때 다음을 수행해야 합니다.

X11 애플리케이션

애플리케이션이 X11 디스플레이 프로토콜을 사용하는 경우 X 서버 액세스 제어 목록에 로컬 사용자 루트 를 추가합니다. 결과적으로 rootX11 프로토콜을 Wayland 프로토콜로 변환하고 역방향으로 변환하는 Xwayland 에 연결할 수 있습니다.

예 21.1. X 서버 액세스 제어 목록에 root 를 추가하여 sudo를 사용하여 xclock을 엽니다.

$ xhost +si:localuser:root

$ sudo xclock

Wayland 애플리케이션

애플리케이션이 Wayland 네이티브인 경우 -E 옵션을 포함합니다.

예 21.2. sudo를 사용하여 GNOME 계산기 열기

$ sudo -E gnome-calculator

그렇지 않으면 sudo 를 입력하고 애플리케이션 이름을 여는 작업이 다음 오류 메시지와 함께 실패합니다.

No protocol specified
Unable to init server: could not connect: connection refused
# Failed to parse arguments: Cannot open display

21.3. GNOME 환경 및 표시 프로토콜 선택

GNOME 환경과 그래픽 프로토콜 스택의 다양한 조합을 전환하려면 다음 절차를 사용하십시오.

절차

  1. 로그인 화면(GDM)에서 Sign In 버튼 옆에 있는 어드바이저 버튼을 클릭합니다.

    참고

    잠금 화면에서 이 옵션에 액세스할 수 없습니다. 로그인 화면은 RHEL 8을 처음 시작하거나 현재 세션에서 로그아웃할 때 표시됩니다.

    gnome environments new

  2. 표시되는 드롭다운 메뉴에서 원하는 옵션을 선택합니다.

    참고

    로그인 화면에 표시되는 메뉴에서 X.Org 표시 서버가 X11 디스플레이 서버로 표시됩니다.

중요

위 절차에서 생성된 GNOME 환경 및 그래픽 프로토콜 스택의 변경은 사용자 로그아웃 시 지속되며 컴퓨터 전원을 끄거나 재부팅할 때도 마찬가지입니다.

22장. 국제화

22.1. RHEL 8 국제 언어

Red Hat Enterprise Linux 8은 여러 언어의 설치와 필요에 따라 언어 변경을 지원합니다.

  • 동아시아 언어 - 일본어, 한국어, 중국어 간체, 중국어 간체입니다.
  • 유럽 언어 - 영어, 독일어, 스페인어, 프랑스어, 이탈리아어, 포르투갈어 및 러시아어.

다음 표에는 다양한 주요 언어에 대해 제공되는 글꼴 및 입력 방법이 나열되어 있습니다.

언어기본 글꼴(Font Package)입력 방법

영어

dejavu-sans-fonts

 

프랑스어

dejavu-sans-fonts

 

독일어

dejavu-sans-fonts

 

이탈리아어

dejavu-sans-fonts

 

러시아어

dejavu-sans-fonts

 

스페인어

dejavu-sans-fonts

 

포르투갈어

dejavu-sans-fonts

 

중국어 단순화

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-libpinyin, libpinyin

기존 중국어

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-libzhuyin, libzhuyin

일본어

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-kkc, libkkc

한국어

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-hangul, libhangu

22.2. RHEL 8의 국제화 관련 주요 변경 사항

RHEL 8에서는 RHEL 7에 비해 다음과 같은 국제화 변경 사항이 추가되었습니다.

  • 유니코드 11 컴퓨팅 업계 표준에 대한 지원이 추가되었습니다.
  • 국제화는 여러 패키지로 분산되어 있어 설치 공간을 줄일 수 있습니다. 자세한 내용은 langpacks 사용을 참조하십시오.
  • 여러 로케일에 대한 glibc 패키지 업데이트가 이제 Common Locale Data Repository(CLDR)와 동기화됩니다.

23장. Red Hat Enterprise Linux for SAP Solutions

Red Hat Enterprise Linux for SAP Solutions는 SAP 워크로드를 위한 일관된 기반을 제공합니다. SAP 환경과 같이 비즈니스에 중요한 IT 환경을 위한 RHEL for SAP Solutions 서브스크립션에서 제공하는 기능 및 이점 목록은 Red Hat Enterprise Linux for SAP Solutions 서브스크립션 개요 를 참조하십시오. 다음 리소스는 RHEL 7과 RHEL 8의 변경 사항에 대한 개요를 제공합니다.

기본 RHEL 리포지토리인 BaseOS 및 AppStream 두 개 외에도 RHEL 8 for SAP Solutions 서브스크립션에는 SAP Solutions 및 SAP NetWema 리포지토리가 포함되어 있습니다. 두 리포지토리 모두 SAP 환경 및 워크로드에 필요합니다.

RHEL 7과 RHEL 8 간의 리포지토리 이름 변경

다음 표에는 RHEL 7 for SAP HANA / Solutions 및 RHEL 8 for SAP Solutions 간에 이름이 변경된 리포지토리가 나열되어 있습니다.

원래 리포지터리 이름새 리포지토리 이름 [a]이후 변경참고

rhel-sap-hana-for-rhel-7-<server|for-power-le>-rpms

rhel-8-for-<arch>-sap-solutions-rpms

RHEL 8.0

EUS (Extended Update Support) 및 Update Services for SAP Solutions (E4S) 리포지토리에도 적용됩니다.

rhel-sap-for-rhel-7-<server|for-power-le>-rpms

rhel-8-for-<arch>-sap-netweaver-rpms

RHEL 8.0

EUS (Extended Update Support) 및 Update Services for SAP Solutions (E4S) 리포지토리에도 적용됩니다.

[a] 이 표는 예제를 사용하여 전체 리포지토리 ID를 식별하는 데 도움이 됩니다. 여기서 < arch >는 특정 아키텍처입니다.

부록 A. 패키지 변경

다음 장에서는 RHEL 7과 RHEL 8 간의 패키지 변경 사항 및 RHEL 8의 마이너 릴리스 간 변경 사항이 포함되어 있습니다.

A.1. 새 패키지

A.1.1. RHEL 8 마이너 릴리스에서 패키지 추가

다음 패키지는 RHEL 8.1부터 RHEL 8 마이너 relases에 추가되었습니다.

패키지리포지터리새로운 기능

aardvark-dns

rhel8-AppStream

RHEL 8.6

accel-config

rhel8-BaseOS

RHEL 8.4

accel-config-devel

rhel8-CRB

RHEL 8.4

accel-config-libs

rhel8-BaseOS

RHEL 8.4

adwaita-icon-theme-devel

rhel8-CRB

RHEL 8.6

adwaita-qt5

rhel8-AppStream

RHEL 8.5

alsa-sof-firmware

rhel8-BaseOS

RHEL 8.3

alsa-sof-firmware-debug

rhel8-BaseOS

RHEL 8.3

anaconda-widgets-devel

rhel8-CRB

RHEL 8.7

annobin-annocheck

rhel8-AppStream

RHEL 8.3

ansible-collection-microsoft-sql

rhel8-AppStream

RHEL 8.5

ansible-collection-redhat-rhel_mgmt

rhel8-AppStream

RHEL 8.5

ansible-core

rhel8-AppStream

RHEL 8.6

ansible-freeipa

rhel8-AppStream

RHEL 8.1

ansible-freeipa-tests

rhel8-AppStream

RHEL 8.5

ansible-pcp

rhel8-AppStream

RHEL 8.5

ansible-test

rhel8-AppStream

RHEL 8.6

apiguardian

rhel8-AppStream

RHEL 8.4

asio-devel

rhel8-CRB

RHEL 8.1

asio-devel

rhel8-CRB

RHEL 8.3

aspnetcore-runtime-3.1

rhel8-AppStream

RHEL 8.2

aspnetcore-runtime-5.0

rhel8-AppStream

RHEL 8.3

aspnetcore-runtime-6.0

rhel8-AppStream

RHEL 8.5

aspnetcore-runtime-7.0

rhel8-AppStream

RHEL 8.7

aspnetcore-targeting-pack-3.1

rhel8-AppStream

RHEL 8.2

aspnetcore-targeting-pack-5.0

rhel8-AppStream

RHEL 8.3

aspnetcore-targeting-pack-6.0

rhel8-AppStream

RHEL 8.5

aspnetcore-targeting-pack-7.0

rhel8-AppStream

RHEL 8.7

autogen-libopts-devel

rhel8-CRB

RHEL 8.3

avahi-glib-devel

rhel8-CRB

RHEL 8.4

avahi-gobject-devel

rhel8-CRB

RHEL 8.4

avahi-tools

rhel8-AppStream

RHEL 8.9

avahi-ui

rhel8-CRB

RHEL 8.4

avahi-ui-devel

rhel8-CRB

RHEL 8.4

bash-devel

rhel8-CRB

RHEL 8.6

batik-css

rhel8-AppStream

RHEL 8.4

batik-util

rhel8-AppStream

RHEL 8.4

bcc-devel

rhel8-CRB

RHEL 8.2

bind9.16

rhel8-AppStream

RHEL 8.6

bind9.16-chroot

rhel8-AppStream

RHEL 8.6

bind9.16-devel

rhel8-CRB

RHEL 8.6

bind9.16-dnssec-utils

rhel8-CRB

RHEL 8.6

bind9.16-doc

rhel8-CRB

RHEL 8.6

bind9.16-libs

rhel8-AppStream

RHEL 8.6

bind9.16-license

rhel8-AppStream

RHEL 8.6

bind9.16-utils

rhel8-AppStream

RHEL 8.6

Chan

rhel8-AppStream

RHEL 8.3

cifs-utils-devel

rhel8-CRB

RHEL 8.8

clang-resource-filesystem

rhel8-AppStream

RHEL 8.5

cockpit-leapp

rhel8-AppStream

RHEL 8.7

compat-exiv2-026

rhel8-AppStream

RHEL 8.2

compat-hwloc1

rhel8-BaseOS

RHEL 8.5

compat-sap-c++-10

rhel8-SAP

RHEL 8.3

compat-sap-c++-11

rhel8-SAP

RHEL 8.5

compat-sap-c++-12

rhel8-SAP

RHEL 8.7

conmon

rhel8-AppStream

RHEL 8.2

coreos-installer

rhel8-AppStream

RHEL 8.5

coreos-installer-bootinfra

rhel8-AppStream

RHEL 8.5

coreos-installer-dracut

rhel8-AppStream

RHEL 8.6

Crit

rhel8-AppStream

RHEL 8.2

criu-devel

rhel8-AppStream

RHEL 8.5

criu-libs

rhel8-AppStream

RHEL 8.5

crun

rhel8-AppStream

RHEL 8.3

crypto-policies-scripts

rhel8-BaseOS

RHEL 8.3

dejavu-lgc-sans-fonts

rhel8-AppStream

RHEL 8.4

delve

rhel8-AppStream

RHEL 8.2

directory-maven-plugin-javadoc

rhel8-AppStream

RHEL 8.2

directory-maven-plugin

rhel8-AppStream

RHEL 8.2

Disruptor

rhel8-AppStream

RHEL 8.6

dotnet-apphost-pack-3.1

rhel8-AppStream

RHEL 8.2

dotnet-apphost-pack-5.0

rhel8-AppStream

RHEL 8.3

dotnet-apphost-pack-6.0

rhel8-AppStream

RHEL 8.5

dotnet-apphost-pack-7.0

rhel8-AppStream

RHEL 8.7

dotnet-build-reference-packages

rhel8-CRB

RHEL 8.5

dotnet-hostfxr-3.1

rhel8-AppStream

RHEL 8.2

dotnet-hostfxr-5.0

rhel8-AppStream

RHEL 8.3

dotnet-hostfxr-6.0

rhel8-AppStream

RHEL 8.5

dotnet-hostfxr-7.0

rhel8-AppStream

RHEL 8.7

dotnet-runtime-3.1

rhel8-AppStream

RHEL 8.2

dotnet-runtime-5.0

rhel8-AppStream

RHEL 8.3

dotnet-runtime-6.0

rhel8-AppStream

RHEL 8.5

dotnet-runtime-7.0

rhel8-AppStream

RHEL 8.7

dotnet-sdk-3.1-source-built-artifacts

rhel8-CRB

RHEL 8.5

dotnet-sdk-3.1

rhel8-AppStream

RHEL 8.2

dotnet-sdk-5.0

rhel8-AppStream

RHEL 8.3

dotnet-sdk-5.0-source-built-artifacts

rhel8-CRB

RHEL 8.5

dotnet-sdk-6.0

rhel8-AppStream

RHEL 8.5

dotnet-sdk-6.0-source-built-artifacts

rhel8-CRB

RHEL 8.6

dotnet-sdk-7.0

rhel8-AppStream

RHEL 8.7

dotnet-sdk-7.0-source-built-artifacts

rhel8-CRB

RHEL 8.7

dotnet-targeting-pack-3.1

rhel8-AppStream

RHEL 8.2

dotnet-targeting-pack-5.0

rhel8-AppStream

RHEL 8.3

dotnet-targeting-pack-6.0

rhel8-AppStream

RHEL 8.5

dotnet-targeting-pack-7.0

rhel8-AppStream

RHEL 8.7

dotnet-templates-3.1

rhel8-AppStream

RHEL 8.2

dotnet-templates-5.0

rhel8-AppStream

RHEL 8.3

dotnet-templates-6.0

rhel8-AppStream

RHEL 8.5

dotnet-templates-7.0

rhel8-AppStream

RHEL 8.7

dotnet5.0-build-reference-packages

rhel8-CRB

RHEL 8.5

dwarves

rhel8-CRB

RHEL 8.2

ecj

rhel8-AppStream

RHEL 8.8

eclipse-ecf-core

rhel8-AppStream

RHEL 8.4

eclipse-ecf-runtime

rhel8-AppStream

RHEL 8.4

eclipse-emf-core

rhel8-AppStream

RHEL 8.4

eclipse-emf-runtime

rhel8-AppStream

RHEL 8.4

eclipse-emf-xsd

rhel8-AppStream

RHEL 8.4

eclipse-equinox-osgi

rhel8-AppStream

RHEL 8.4

eclipse-jdt

rhel8-AppStream

RHEL 8.4

Eclipse-p2-discovery

rhel8-AppStream

RHEL 8.4

eclipse-pde

rhel8-AppStream

RHEL 8.4

Eclipse-platform

rhel8-AppStream

RHEL 8.4

eclipse-swt

rhel8-AppStream

RHEL 8.4

ee4j-parent

rhel8-AppStream

RHEL 8.2

efivar-devel

rhel8-CRB

RHEL 8.6

egl-utils

rhel8-AppStream

RHEL 8.7

elfutils-debuginfod

rhel8-BaseOS

RHEL 8.3

elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.2

elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.2

emoji-picker

rhel8-AppStream

RHEL 8.4

eth-tools-basic

rhel8-AppStream

RHEL 8.5

eth-tools-fastfabric

rhel8-AppStream

RHEL 8.5

evince-devel

rhel8-CRB

RHEL 8.4

fapolicyd

rhel8-AppStream

RHEL 8.1

fapolicyd-selinux

rhel8-AppStream

RHEL 8.3

fdo-admin-cli

rhel8-AppStream

RHEL 8.6

fdo-client

rhel8-AppStream

RHEL 8.6

fdo-init

rhel8-AppStream

RHEL 8.6

fdo-manufacturing-server

rhel8-AppStream

RHEL 8.6

fdo-owner-cli

rhel8-AppStream

RHEL 8.6

fdo-owner-onboarding-server

rhel8-AppStream

RHEL 8.6

fdo-rendezvous-server

rhel8-AppStream

RHEL 8.6

felix-gogo-command

rhel8-AppStream

RHEL 8.4

felix-gogo-runtime

rhel8-AppStream

RHEL 8.4

felix-gogo-shell

rhel8-AppStream

RHEL 8.4

felix-scr

rhel8-AppStream

RHEL 8.4

fence-agents-ibm-powervs

rhel8-AppStream

RHEL 8.6

fence-agents-ibm-vpc

rhel8-AppStream

RHEL 8.6

fence-agents-kubevirt

rhel8-AppStream

RHEL 8.6

fence-agents-openstack

rhel8-HighAvailability

RHEL 8.7

fence-virtd-cpg

rhel8-AppStream

RHEL 8.6

flatpak-devel

rhel8-CRB

RHEL 8.5

flatpak-selinux

rhel8-AppStream

RHEL 8.2

flatpak-session-helper

rhel8-AppStream

RHEL 8.2

flatpak-spawn

rhel8-AppStream

RHEL 8.4

flatpak-xdg-utils

rhel8-AppStream

RHEL 8.4

frr-selinux

rhel8-AppStream

RHEL 8.7

fstrm

rhel8-AppStream

RHEL 8.4

fstrm-devel

rhel8-AppStream

RHEL 8.4

fstrm-utils

rhel8-CRB

RHEL 8.7

fwupd-devel

rhel8-CRB

RHEL 8.6

gcc-plugin-annobin

rhel8-AppStream

RHEL 8.7

gcc-toolset-9-libasan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libatomic-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-liblsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libtsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libubsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-10

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-annobin

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-binutils

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-binutils-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-build

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dwz

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dyninst

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dyninst-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libelf

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libelf-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libs

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-c++

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-gdb-plugin

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-gfortran

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-plugin-devel

rhel8-CRB

RHEL 8.5

gcc-toolset-10-gdb

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gdb-doc

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gdb-gdbserver

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libasan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libatomic-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libitm-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-liblsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libquadmath-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libstdc++-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libstdc++-docs

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libtsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libubsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-ltrace

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-make

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-make-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-perftools

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-runtime

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-strace

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-client

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-initscript

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-runtime

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-sdt-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-server

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-toolchain

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-valgrind

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-valgrind-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-11

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-annocheck

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-binutils

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-binutils-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-build

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dwz

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dyninst

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dyninst-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libelf

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libelf-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-c++

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-gdb-plugin

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-gfortran

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-plugin-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb-doc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb-gdbserver

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libasan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libatomic-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libitm-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-liblsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libquadmath-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libstdc++-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libstdc++-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libtsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libubsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-ltrace

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-make

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-make-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-perftools

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-runtime

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-strace

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-client

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-initscript

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-runtime

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-sdt-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-server

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-toolchain

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-valgrind

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-valgrind-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-12

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-annocheck

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils-gold

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-build

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-dwz

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-c++

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-gfortran

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-plugin-annobin

rhel8-AppStream

RHEL 8.8

gcc-toolset-12-gcc-plugin-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gdb

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libasan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libatomic-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libitm-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-liblsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libquadmath-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libstdc++-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libstdc++-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libtsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libubsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-offload-nvptx

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-runtime

rhel8-AppStream

RHEL 8.7

gcc-toolset-13

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-annocheck

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-docs

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils-gold

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-dwz

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-c++

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-gfortran

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-plugin-annobin

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-plugin-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gdb

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libasan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libatomic-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libgccjit

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libgccjit-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libitm-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-liblsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libquadmath-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libstdc++-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libstdc++-docs

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libtsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libubsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-offload-nvptx

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-runtime

rhel8-AppStream

RHEL 8.9

gdm-devel

rhel8-CRB

RHEL 8.6

gdm-pam-extensions-devel

rhel8-CRB

RHEL 8.6

git-credential-libsecret

rhel8-AppStream

RHEL 8.3

git-lfs

rhel8-AppStream

RHEL 8.3

glade

rhel8-CRB

RHEL 8.7

glassfish-jsp

rhel8-AppStream

RHEL 8.4

glibc-doc

rhel8-BaseOS

RHEL 8.7

glibc-gconv-extra

rhel8-AppStream

RHEL 8.6

gnome-session-kiosk-session

rhel8-AppStream

RHEL 8.5

gnome-shell-extension-classification-banner

rhel8-AppStream

RHEL 8.6

gnome-shell-extension-custom-menu

rhel8-AppStream

RHEL 8.9

gnome-shell-extension-dash-to-panel

rhel8-AppStream

RHEL 8.6

gnome-shell-extension-gesture-inhibitor

rhel8-AppStream

RHEL 8.5

gnome-shell-extension-heads-up-display

rhel8-AppStream

RHEL 8.6

gnome-software-devel

rhel8-CRB

RHEL 8.5

google-gson

rhel8-AppStream

RHEL 8.4

grafana-pcp

rhel8-AppStream

RHEL 8.2

graphviz-python3

rhel8-CRB

RHEL 8.2

greenboot

rhel8-AppStream

RHEL 8.3

greenboot-default-health-checks

rhel8-AppStream

RHEL 8.6

greenboot-grub2

rhel8-AppStream

RHEL 8.3

greenboot-reboot

rhel8-AppStream

RHEL 8.3

greenboot-rpm-ostree-grub2

rhel8-AppStream

RHEL 8.3

greenboot-status

rhel8-AppStream

RHEL 8.3

gtk-vnc2-devel

rhel8-CRB

RHEL 8.9

gtk3-devel-docs

rhel8-CRB

RHEL 8.7

Guava

rhel8-AppStream

RHEL 8.2

gvnc-devel

rhel8-CRB

RHEL 8.9

HdrHistogram

rhel8-AppStream

RHEL 8.3

HdrHistogram_c

rhel8-AppStream

RHEL 8.3

HdrHistogram-javadoc

rhel8-AppStream

RHEL 8.3

hostapd

rhel8-AppStream

RHEL 8.6

http-parser-devel

rhel8-CRB

RHEL 8.2

ibus-table-devel

rhel8-CRB

RHEL 8.4

ibus-table-tests

rhel8-CRB

RHEL 8.4

ibus-typing-booster-tests

rhel8-CRB

RHEL 8.4

icu4j

rhel8-AppStream

RHEL 8.4

idm-pki-acme

rhel8-AppStream

RHEL 8.7

idm-pki-base

rhel8-AppStream

RHEL 8.7

idm-pki-base-java

rhel8-AppStream

RHEL 8.7

idm-pki-ca

rhel8-AppStream

RHEL 8.7

idm-pki-kra

rhel8-AppStream

RHEL 8.7

idm-pki-server

rhel8-AppStream

RHEL 8.7

idm-pki-symkey

rhel8-AppStream

RHEL 8.7

idm-pki-tools

rhel8-AppStream

RHEL 8.7

idn2

rhel8-AppStream

RHEL 8.1

ima-evm-utils0

rhel8-BaseOS

RHEL 8.4

inkscape1

rhel8-AppStream

RHEL 8.8

inkscape1-docs

rhel8-AppStream

RHEL 8.8

inkscape1-view

rhel8-AppStream

RHEL 8.8

intel-cmt-cat-devel

rhel8-CRB

RHEL 8.4

ipa-client-epn

rhel8-AppStream

RHEL 8.3

ipa-client-samba

rhel8-AppStream

RHEL 8.1

ipa-healthcheck

rhel8-AppStream

RHEL 8.1

ipa-healthcheck-core

rhel8-AppStream

RHEL 8.2

ipa-selinux

rhel8-AppStream

RHEL 8.3

ipxe-bootimgs-aarch64

rhel8-AppStream

RHEL 8.6

ipxe-bootimgs-x86

rhel8-AppStream

RHEL 8.6

iscsi-initiator-utils-devel

rhel8-CRB

RHEL 8.3

jaf-javadoc

rhel8-AppStream

RHEL 8.2

jaf

rhel8-AppStream

RHEL 8.2

jakarta-activation2

rhel8-AppStream

RHEL 8.8

jakarta-annotations

rhel8-AppStream

RHEL 8.7

java-1.8.0-openjdk-accessibility-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-accessibility-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-static-libs

rhel8-AppStream

RHEL 8.3

java-11-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.4

java-17-openjdk

rhel8-AppStream

RHEL 8.5

java-17-openjdk-demo

rhel8-AppStream

RHEL 8.5

java-17-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-devel

rhel8-AppStream

RHEL 8.5

java-17-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-headless

rhel8-AppStream

RHEL 8.5

java-17-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-javadoc

rhel8-AppStream

RHEL 8.5

java-17-openjdk-javadoc-zip

rhel8-AppStream

RHEL 8.5

java-17-openjdk-jmods

rhel8-AppStream

RHEL 8.5

java-17-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-src

rhel8-AppStream

RHEL 8.5

java-17-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-static-libs

rhel8-AppStream

RHEL 8.5

java-17-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.5

java-21-openjdk

rhel8-AppStream

RHEL 8.9

java-21-openjdk-demo

rhel8-AppStream

RHEL 8.9

java-21-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-devel

rhel8-AppStream

RHEL 8.9

java-21-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-headless

rhel8-AppStream

RHEL 8.9

java-21-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-javadoc

rhel8-AppStream

RHEL 8.9

java-21-openjdk-javadoc-zip

rhel8-AppStream

RHEL 8.9

java-21-openjdk-jmods

rhel8-AppStream

RHEL 8.9

java-21-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-src

rhel8-AppStream

RHEL 8.9

java-21-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-static-libs

rhel8-AppStream

RHEL 8.9

java-21-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.9

jaxb-api4

rhel8-AppStream

RHEL 8.8

jaxb-codemodel

rhel8-AppStream

RHEL 8.8

ScanSettingB-core

rhel8-AppStream

RHEL 8.8

jaxb-dtd-parser

rhel8-AppStream

RHEL 8.8

jaxb-istack-commons-runtime

rhel8-AppStream

RHEL 8.8

jaxb-istack-commons-tools

rhel8-AppStream

RHEL 8.8

jaxb-relaxng-datatype

rhel8-AppStream

RHEL 8.8

jaxb-rngom

rhel8-AppStream

RHEL 8.8

jaxb-runtime

rhel8-AppStream

RHEL 8.8

jaxb-txw2

rhel8-AppStream

RHEL 8.8

jaxb-xjc

rhel8-AppStream

RHEL 8.8

jaxb-xsom

rhel8-AppStream

RHEL 8.8

jctools

rhel8-AppStream

RHEL 8.6

jetty-continuation

rhel8-AppStream

RHEL 8.4

jetty-http

rhel8-AppStream

RHEL 8.4

jetty-io

rhel8-AppStream

RHEL 8.4

jetty-security

rhel8-AppStream

RHEL 8.4

jetty-server

rhel8-AppStream

RHEL 8.4

jetty-servlet

rhel8-AppStream

RHEL 8.4

jetty-util

rhel8-AppStream

RHEL 8.4

Jigawatts

rhel8-AppStream

RHEL 8.5

jigawatts-javadoc

rhel8-AppStream

RHEL 8.5

jigawatts-javadoc

rhel8-AppStream

RHEL 8.8

jmc-core-javadoc

rhel8-AppStream

RHEL 8.2

jmc-core

rhel8-AppStream

RHEL 8.2

jmc

rhel8-AppStream

RHEL 8.2

jolokia-jvm-agent

rhel8-AppStream

RHEL 8.2

jq-devel

rhel8-CRB

RHEL 8.5

js-d3-flame-graph

rhel8-AppStream

RHEL 8.3

Judy-devel

rhel8-BaseOS

RHEL 8.1

Judy-devel

rhel8-CRB

RHEL 8.3

junit5

rhel8-AppStream

RHEL 8.4

kernel-abi-stablelists

rhel8-BaseOS

RHEL 8.4

kmod-redhat-oracleasm

rhel8-BaseOS

RHEL 8.4

kpatch-dnf

rhel8-BaseOS

RHEL 8.4

lasso-devel

rhel8-CRB

RHEL 8.5

LeApp

rhel8-AppStream

RHEL 8.7

leapp-deps

rhel8-AppStream

RHEL 8.7

leapp-upgrade-el8toel9

rhel8-AppStream

RHEL 8.7

leapp-upgrade-el8toel9-deps

rhel8-AppStream

RHEL 8.7

libadwaita-qt5

rhel8-AppStream

RHEL 8.5

libasan6

rhel8-AppStream

RHEL 8.4

libasan8

rhel8-AppStream

RHEL 8.7

libbabeltrace-devel

rhel8-CRB

RHEL 8.3

libblockdev-crypto-devel

rhel8-CRB

RHEL 8.3

libblockdev-devel

rhel8-CRB

RHEL 8.3

libblockdev-fs-devel

rhel8-CRB

RHEL 8.3

libblockdev-loop-devel

rhel8-CRB

RHEL 8.3

libblockdev-lvm-devel

rhel8-CRB

RHEL 8.3

libblockdev-mdraid-devel

rhel8-CRB

RHEL 8.3

libblockdev-part-devel

rhel8-CRB

RHEL 8.3

libblockdev-swap-devel

rhel8-CRB

RHEL 8.3

libblockdev-utils-devel

rhel8-CRB

RHEL 8.3

libblockdev-vdo-devel

rhel8-CRB

RHEL 8.3

libbpf-devel

rhel8-CRB

RHEL 8.2

libbpf-static

rhel8-CRB

RHEL 8.2

libbpf

rhel8-BaseOS

RHEL 8.2

libbytesize-devel

rhel8-CRB

RHEL 8.3

libcap-ng-python3

rhel8-BaseOS

RHEL 8.5

libdazzle-devel

rhel8-CRB

RHEL 8.4

libdhash-devel

rhel8-CRB

RHEL 8.7

libdnf-devel

rhel8-CRB

RHEL 8.4

libdwarves1

rhel8-CRB

RHEL 8.2

libecpg

rhel8-AppStream

RHEL 8.4

libecpg-devel

rhel8-CRB

RHEL 8.4

libepubgen-devel

rhel8-CRB

RHEL 8.4

libestr-devel

rhel8-CRB

RHEL 8.7

libgcab1-devel

rhel8-CRB

RHEL 8.6

libguestfs-appliance

rhel8-AppStream

RHEL 8.6

libnbd

rhel8-AppStream

RHEL 8.3

libnbd-bash-completion

rhel8-AppStream

RHEL 8.6

libnbd-devel

rhel8-AppStream

RHEL 8.3

libnetapi

rhel8-BaseOS

RHEL 8.8

libnetapi-devel

rhel8-CRB

RHEL 8.8

libnftnl-devel

rhel8-CRB

RHEL 8.2

libnumbertext

rhel8-AppStream

RHEL 8.4

libpgtypes

rhel8-AppStream

RHEL 8.4

libpinyin-devel

rhel8-CRB

RHEL 8.6

libpsl-devel

rhel8-CRB

RHEL 8.3

libreoffice

rhel8-AppStream

RHEL 8.8

librepo-devel

rhel8-CRB

RHEL 8.4

librhsm-devel

rhel8-CRB

RHEL 8.4

libselinux-static

rhel8-CRB

RHEL 8.6

libsemanage-devel

rhel8-CRB

RHEL 8.3

libserf-devel

rhel8-CRB

RHEL 8.7

libslirp

rhel8-AppStream

RHEL 8.3

libslirp-devel

rhel8-AppStream

RHEL 8.3

libsmi-devel

rhel8-CRB

RHEL 8.4

libsndfile-utils

rhel8-AppStream

RHEL 8.8

libsolv-devel

rhel8-CRB

RHEL 8.4

libsolv-tools

rhel8-CRB

RHEL 8.4

libss-devel

rhel8-CRB

RHEL 8.6

libssh-config

rhel8-BaseOS

RHEL 8.1

libstoragemgmt-devel

rhel8-BaseOS

RHEL 8.3

libstoragemgmt-devel

rhel8-CRB

RHEL 8.3

libstoragemgmt-nfs-plugin

rhel8-AppStream

RHEL 8.7

libtpms

rhel8-AppStream

RHEL 8.6

libtpms-devel

rhel8-AppStream

RHEL 8.6

libtraceevent

rhel8-BaseOS

RHEL 8.8

libtraceevent-devel

rhel8-CRB

RHEL 8.8

libtracefs

rhel8-BaseOS

RHEL 8.8

libtracefs-devel

rhel8-CRB

RHEL 8.8

libtsan2

rhel8-AppStream

RHEL 8.7

libudisks2-devel

rhel8-CRB

RHEL 8.3

liburing-devel

rhel8-CRB

RHEL 8.3

liburing

rhel8-AppStream

RHEL 8.2

libuser-devel

rhel8-CRB

RHEL 8.6

libuv-devel

rhel8-CRB

RHEL 8.4

libverto-libev

rhel8-AppStream

RHEL 8.7

libvirt-daemon-driver-storage-iscsi-direct

rhel8-AppStream

RHEL 8.3

libvirt-wireshark

rhel8-AppStream

RHEL 8.6

libvma-utils

rhel8-AppStream

RHEL 8.9

libvoikko-devel

rhel8-CRB

RHEL 8.5

libwpe

rhel8-AppStream

RHEL 8.8

libwpe-devel

rhel8-CRB

RHEL 8.8

libxdp

rhel8-AppStream

RHEL 8.3

libxdp-devel

rhel8-CRB

RHEL 8.8

libxdp-static

rhel8-CRB

RHEL 8.8

libxkbfile-1.1.0-1.el8

rhel8-AppStream

RHEL 8.3

libxmlb

rhel8-BaseOS

RHEL 8.3

libxmlb-devel

rhel8-CRB

RHEL 8.6

libXvMC-devel

rhel8-CRB

RHEL 8.3

libzstd-devel

rhel8-BaseOS

RHEL 8.2

libzstd

rhel8-BaseOS

RHEL 8.2

lld-test

rhel8-AppStream

RHEL 8.2

lmdb

rhel8-CRB

RHEL 8.8

lmdb-devel

rhel8-CRB

RHEL 8.6

lmdb-libs

rhel8-AppStream

RHEL 8.1

log4j

rhel8-AppStream

RHEL 8.6

log4j-jcl

rhel8-AppStream

RHEL 8.6

log4j-slf4j

rhel8-AppStream

RHEL 8.6

log4j-web

rhel8-AppStream

RHEL 8.8

lpsolve-devel

rhel8-CRB

RHEL 8.5

lucene

rhel8-AppStream

RHEL 8.4

lucene-analysis

rhel8-AppStream

RHEL 8.4

lucene-analyzers-smartcn

rhel8-AppStream

RHEL 8.4

Lucene-queries

rhel8-AppStream

RHEL 8.4

lucene-queryparser

rhel8-AppStream

RHEL 8.4

lucene-sandbox

rhel8-AppStream

RHEL 8.4

lz4-java

rhel8-AppStream

RHEL 8.4

lz4-java-javadoc

rhel8-AppStream

RHEL 8.4

make43

rhel8-AppStream

RHEL 8.7

make43-devel

rhel8-AppStream

RHEL 8.7

mariadb-pam

rhel8-AppStream

RHEL 8.4

marisa-devel

rhel8-CRB

RHEL 8.9

maven-openjdk11

rhel8-AppStream

RHEL 8.2

maven-openjdk8

rhel8-AppStream

RHEL 8.2

maven-openjdk17

rhel8-AppStream

RHEL 8.6

mdevctl

rhel8-AppStream

RHEL 8.3

memstrack

rhel8-BaseOS

RHEL 8.3

mercurial-chg

rhel8-AppStream

RHEL 8.7

micropipenv

rhel8-AppStream

RHEL 8.4

mingw32-spice-vdagent

rhel8-CRB

RHEL 8.2

mingw64-spice-vdagent

rhel8-CRB

RHEL 8.2

mobile-broadband-provider-info-devel

rhel8-CRB

RHEL 8.5

mod_auth_mellon-diagnostics

rhel8-AppStream

RHEL 8.1

modulemd-tools

rhel8-AppStream

RHEL 8.5c

mpdecimal

rhel8-AppStream

RHEL 8.8

mpdecimal++

rhel8-CRB

RHEL 8.8

mpdecimal-devel

rhel8-CRB

RHEL 8.8

mpdecimal-doc

rhel8-CRB

RHEL 8.8

mpich-doc

rhel8-AppStream

RHEL 8.4

mvapich2-devel

rhel8-AppStream

RHEL 8.4

mvapich2-doc

rhel8-AppStream

RHEL 8.4

mvapich2-psm2-devel

rhel8-AppStream

RHEL 8.4

mysql-selinux

rhel8-AppStream

RHEL 8.4

nbdfuse

rhel8-AppStream

RHEL 8.3

nbdkit-basic-filters

rhel8-AppStream

RHEL 8.3

nbdkit-curl-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-gzip-filter

rhel8-AppStream

RHEL 8.6

nbdkit-gzip-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-linuxdisk-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-nbd-plugin

rhel8-AppStream

RHEL 8.6

nbdkit-python-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-server

rhel8-AppStream

RHEL 8.3

nbdkit-ssh-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-tar-filter

rhel8-AppStream

RHEL 8.6

nbdkit-tar-plugin

rhel8-AppStream

RHEL 8.6

nbdkit-tmpdisk-plugin

rhel8-AppStream

RHEL 8.6

nbdkit-vddk-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-xz-filter

rhel8-AppStream

RHEL 8.3

netavark

rhel8-AppStream

RHEL 8.6

net-snmp-perl

rhel8-AppStream

RHEL 8.3

NetworkManager-cloud-setup

rhel8-AppStream

RHEL 8.2

NetworkManager-initscripts-updown

rhel8-BaseOS

RHEL 8.6

nftables-devel

rhel8-CRB

RHEL 8.6

nispor

rhel8-AppStream

RHEL 8.4

nispor-devel

rhel8-AppStream

RHEL 8.4

nginx-mod-devel

rhel8-AppStream

RHEL 8.6

nmstate-devel

rhel8-CRB

RHEL 8.6

nmstate-libs

rhel8-AppStream

RHEL 8.6

nmstate-plugin-ovsdb

rhel8-AppStream

RHEL 8.3

nodejs-full-i18n

rhel8-AppStream

RHEL 8.3

nodejs-packaging-bundler

rhel8-AppStream

RHEL 8.7

nss_wrapper-libs

rhel8-AppStream

RHEL 8.8

numatop

rhel8-BaseOS

RHEL 8.2

ocaml-libnbd

rhel8-CRB

RHEL 8.3

ocaml-libnbd-devel

rhel8-CRB

RHEL 8.3

oci-seccomp-bpf-hook

rhel8-AppStream

RHEL 8.3

oci-seccomp-bpf-hook

rhel8-BaseOS

RHEL 8.3

opae

rhel8-BaseOS

RHEL 8.3

openldap-servers

rhel8-CRB

RHEL 8.6

open-vm-tools-salt-minion

rhel8-AppStream

RHEL 8.7

open-vm-tools-sdmp

rhel8-AppStream

RHEL 8.3

OpenCV

rhel8-CRB

RHEL 8.5

openslp-devel

rhel8-CRB

RHEL 8.7

opentest4j

rhel8-AppStream

RHEL 8.4

osbuild

rhel8-AppStream

RHEL 8.3

osbuild-composer

rhel8-AppStream

RHEL 8.3

osbuild-composer-core

rhel8-AppStream

RHEL 8.4

osbuild-composer-dnf-json

rhel8-AppStream

RHEL 8.6

osbuild-composer-worker

rhel8-AppStream

RHEL 8.3

osbuild-luks2

rhel8-AppStream

RHEL 8.6

osbuild-lvm2

rhel8-AppStream

RHEL 8.6

osbuild-ostree

rhel8-AppStream

RHEL 8.3

osbuild-selinux

rhel8-AppStream

RHEL 8.3

owasp-java-encoder-javadoc

rhel8-AppStream

RHEL 8.2

owasp-java-encoder

rhel8-AppStream

RHEL 8.2

pam_wrapper

rhel8-CRB

RHEL 8.7

pcm

rhel8-AppStream

RHEL 8.5

pcp-export-pcp2elasticsearch

rhel8-AppStream

RHEL 8.2

pcp-export-pcp2spark

rhel8-AppStream

RHEL 8.2

pcp-pmda-bpftrace

rhel8-AppStream

RHEL 8.2

pcp-pmda-denki

rhel8-AppStream

RHEL 8.6

pcp-pmda-hacluster

rhel8-AppStream

RHEL 8.4

pcp-pmda-mongodb

rhel8-AppStream

RHEL 8.6

pcp-pmda-mssql

rhel8-AppStream

RHEL 8.2

pcp-pmda-netcheck

rhel8-AppStream

RHEL 8.2

pcp-pmda-openmetrics

rhel8-AppStream

RHEL 8.2

pcp-pmda-openvswitch

rhel8-AppStream

RHEL 8.3

pcp-pmda-rabbitmq

rhel8-AppStream

RHEL 8.3

pcp-pmda-sockets

rhel8-AppStream

RHEL 8.4

pcp-pmda-statsd

rhel8-AppStream

RHEL 8.3

pcre2-tools

rhel8-CRB

RHEL 8.3

perl-AutoLoader

rhel8-AppStream

RHEL 8.6

perl-AutoSplit

rhel8-AppStream

RHEL 8.6

perl-autouse

rhel8-AppStream

RHEL 8.6

perl-B

rhel8-AppStream

RHEL 8.6

perl-base

rhel8-AppStream

RHEL 8.6

perl-Benchmark

rhel8-AppStream

RHEL 8.6

perl-blib

rhel8-AppStream

RHEL 8.6

perl-Class-Struct

rhel8-AppStream

RHEL 8.6

perl-Compress-Raw-Lzma

rhel8-AppStream

RHEL 8.6

perl-Config-Extensions

rhel8-AppStream

RHEL 8.6

perl-Convert-ASN1

rhel8-AppStream

RHEL 8.2

perl-DBM_Filter

rhel8-AppStream

RHEL 8.6

perl-debugger

rhel8-AppStream

RHEL 8.6

perl-deprecate

rhel8-AppStream

RHEL 8.6

perl-diagnostics

rhel8-AppStream

RHEL 8.6

perl-DirHandle

rhel8-AppStream

RHEL 8.6

perl-doc

rhel8-AppStream

RHEL 8.6

perl-Dumpvalue

rhel8-AppStream

RHEL 8.6

perl-DynaLoader

rhel8-AppStream

RHEL 8.6

perl-encoding-warnings

rhel8-AppStream

RHEL 8.6

perl-English

rhel8-AppStream

RHEL 8.6

perl-ExtUtils-Constant

rhel8-AppStream

RHEL 8.6

perl-Fcntl

rhel8-AppStream

RHEL 8.6

perl-fields

rhel8-AppStream

RHEL 8.6

perl-File-Basename

rhel8-AppStream

RHEL 8.6

perl-File-Compare

rhel8-AppStream

RHEL 8.6

perl-File-Copy

rhel8-AppStream

RHEL 8.6

perl-File-DosGlob

rhel8-AppStream

RHEL 8.6

perl-File-Find

rhel8-AppStream

RHEL 8.6

perl-File-stat

rhel8-AppStream

RHEL 8.6

perl-FileCache

rhel8-AppStream

RHEL 8.6

perl-FileHandle

rhel8-AppStream

RHEL 8.6

perl-filetest

rhel8-AppStream

RHEL 8.6

perl-FindBin

rhel8-AppStream

RHEL 8.6

perl-GDBM_File

rhel8-AppStream

RHEL 8.6

perl-Getopt-Std

rhel8-AppStream

RHEL 8.6

perl-Hash-Util

rhel8-AppStream

RHEL 8.6

perl-Hash-Util-FieldHash

rhel8-AppStream

RHEL 8.6

perl-I18N-Collate

rhel8-AppStream

RHEL 8.6

perl-I18N-Langinfo

rhel8-AppStream

RHEL 8.6

perl-I18N-LangTags

rhel8-AppStream

RHEL 8.6

perl-if

rhel8-AppStream

RHEL 8.6

perl-IO-Compress-Lzma

rhel8-AppStream

RHEL 8.6

perl-IPC-Open3

rhel8-AppStream

RHEL 8.6

perl-less

rhel8-AppStream

RHEL 8.6

perl-LDAP

rhel8-AppStream

RHEL 8.2

perl-lib

rhel8-AppStream

RHEL 8.6

perl-locale

rhel8-AppStream

RHEL 8.6

perl-ECDHE-AuthenticationResults

rhel8-AppStream

RHEL 8.8

perl-Mail-Sender

rhel8-AppStream

RHEL 8.3

perl-meta-notation

rhel8-AppStream

RHEL 8.6

perl-mro

rhel8-AppStream

RHEL 8.6

perl-NDBM_File

rhel8-AppStream

RHEL 8.6

perl-Net

rhel8-AppStream

RHEL 8.6

perl-NEXT

rhel8-AppStream

RHEL 8.6

perl-Object-HashBase

rhel8-AppStream

RHEL 8.3

perl-Object-HashBase-tools

rhel8-AppStream

RHEL 8.3

perl-ODBM_File

rhel8-AppStream

RHEL 8.6

perl-Opcode

rhel8-AppStream

RHEL 8.6

perl-overload

rhel8-AppStream

RHEL 8.6

perl-overloading

rhel8-AppStream

RHEL 8.6

perl-ph

rhel8-AppStream

RHEL 8.6

Perl-Pod-Functions

rhel8-AppStream

RHEL 8.6

perl-POSIX

rhel8-AppStream

RHEL 8.6

perl-Safe

rhel8-AppStream

RHEL 8.6

perl-Search-Dict

rhel8-AppStream

RHEL 8.6

perl-SelectSaver

rhel8-AppStream

RHEL 8.6

perl-sigtrap

rhel8-AppStream

RHEL 8.6

perl-sort

rhel8-AppStream

RHEL 8.6

perl-subs

rhel8-AppStream

RHEL 8.6

perl-Symbol

rhel8-AppStream

RHEL 8.6

perl-Sys-Hostname

rhel8-AppStream

RHEL 8.6

perl-Term-Complete

rhel8-AppStream

RHEL 8.6

perl-Term-ReadLine

rhel8-AppStream

RHEL 8.6

perl-Term-Size-Any

rhel8-CRB

RHEL 8.6

perl-Term-Size-Perl

rhel8-CRB

RHEL 8.6

perl-Text-Abbrev

rhel8-AppStream

RHEL 8.6

perl-Thread

rhel8-AppStream

RHEL 8.6

perl-Thread-Semaphore

rhel8-AppStream

RHEL 8.6

perl-Tie

rhel8-AppStream

RHEL 8.6

perl-Tie-File

rhel8-AppStream

RHEL 8.6

perl-Tie-Memoize

rhel8-AppStream

RHEL 8.6

perl-Tie-RefHash

rhel8-AppStream

RHEL 8.6

perl-Time

rhel8-AppStream

RHEL 8.6

perl-Unicode-UCD

rhel8-AppStream

RHEL 8.6

perl-User-pwent

rhel8-AppStream

RHEL 8.6

perl-vars

rhel8-AppStream

RHEL 8.6

perl-vmsish

rhel8-AppStream

RHEL 8.6

pg_repack

rhel8-AppStream

RHEL 8.5

pgaudit

rhel8-AppStream

RHEL 8.2

php-ffi

rhel8-AppStream

RHEL 8.3

php-pecl-rrd

rhel8-AppStream

RHEL 8.2

php-pecl-xdebug

rhel8-AppStream

RHEL 8.2

php-pecl-xdebug3

rhel8-AppStream

RHEL 8.6

pipewire0.2

rhel8-AppStream

RHEL 8.3

pipewire0.2-devel

rhel8-AppStream

RHEL 8.3

pipewire0.2-libs

rhel8-AppStream

RHEL 8.3

pki-acme

rhel8-AppStream

RHEL 8.4

pmix-devel

rhel8-CRB

RHEL 8.3

podman-catatonit

rhel8-AppStream

RHEL 8.3

podman-gvproxy

rhel8-AppStream

RHEL 8.5

podman-plugins

rhel8-AppStream

RHEL 8.4

postfix-cdb

rhel8-AppStream

RHEL 8.2

postfix-pcre

rhel8-AppStream

RHEL 8.2

postfix-sqlite

rhel8-AppStream

RHEL 8.2

postgres-decoderbufs

rhel8-AppStream

RHEL 8.2

postgresql-private-devel

rhel8-AppStream

RHEL 8.8

postgresql-private-libs

rhel8-AppStream

RHEL 8.8

procps-ng-devel

rhel8-CRB

RHEL 8.8

prometheus-jmx-exporter

rhel8-AppStream

RHEL 8.2

prometheus-jmx-exporter-openjdk11

rhel8-AppStream

RHEL 8.6

prometheus-jmx-exporter-openjdk17

rhel8-AppStream

RHEL 8.8

prometheus-jmx-exporter-openjdk8

rhel8-AppStream

RHEL 8.8

protobuf-lite-devel

rhel8-CRB

RHEL 8.3

py3c-devel

rhel8-CRB

RHEL 8.4

py3c-doc

rhel8-CRB

RHEL 8.4

python-ldb-devel-common

rhel8-CRB

RHEL 8.7

python-sphinx-latex

rhel8-CRB

RHEL 8.7

python2-pip-wheel

rhel8-Modules

RHEL 8.1

python2-setuptools-wheel

rhel8-Modules

RHEL 8.1

python2-wheel-wheel

rhel8-Modules

RHEL 8.1

python3-babeltrace

rhel8-CRB

RHEL 8.7

python3-bind9.16

rhel8-CRB

RHEL 8.6

python3-brotli

rhel8-AppStream

RHEL 8.3

python3-cairo-devel

rhel8-CRB

RHEL 8.7

python3-cloud-what

rhel8-BaseOS

RHEL 8.5

python3-criu

rhel8-AppStream

RHEL 8.2

python3-dasbus

rhel8-AppStream

RHEL 8.3

python3-distro

rhel8-Modules

RHEL 8.1

python3-dnf-plugin-modulesync

rhel8-AppStream

RHEL 8.6

python3-dnf-plugin-post-transaction-actions

rhel8-BaseOS

RHEL 8.2

python3-freeradius

rhel8-AppStream

RHEL 8.3

python3-idm-pki

rhel8-AppStream

RHEL 8.7

python3-ipatests

rhel8-AppStream

RHEL 8.4

python3-lasso

rhel8-AppStream

RHEL 8.7

python3-ldb-devel

rhel8-CRB

RHEL 8.7

python3-leapp

rhel8-AppStream

RHEL 8.7

python3-libmodulemd

rhel8-AppStream

RHEL 8.3

python3-libmount

rhel8-AppStream

RHEL 8.3

python3-libnbd

rhel8-AppStream

RHEL 8.3

python3-networkx-core

rhel8-AppStream

RHEL 8.2

python3-networkx

rhel8-AppStream

RHEL 8.2

python3-nftables

rhel8-BaseOS

RHEL 8.2

python3-nispor

rhel8-AppStream

RHEL 8.4

python3-osbuild

rhel8-AppStream

RHEL 8.3

python3-pacemaker

rhel8-HighAvailability

RHEL 8.9

python3-pillow-devel

rhel8-CRB

RHEL 8.5

python3-pillow-doc

rhel8-CRB

RHEL 8.5

python3-pillow-tk

rhel8-CRB

RHEL 8.5

python3-pip-wheel

rhel8-BaseOS

RHEL 8.1

python3-podman

rhel8-AppStream

RHEL 8.5

python3-protobuf

rhel8-AppStream

RHEL 8.2

python3-pyghmi

rhel8-AppStream

RHEL 8.5

python3-pyodbc

rhel8-AppStream

RHEL 8.4

python3-pyverbs

rhel8-BaseOS

RHEL 8.4

python3-samba-dc

rhel8-BaseOS

RHEL 8.8

python3-samba-devel

rhel8-CRB

RHEL 8.8

python3-scour

rhel8-AppStream

RHEL 8.8

python3-setuptools-wheel

rhel8-BaseOS

RHEL 8.1

python3-solv

rhel8-BaseOS

RHEL 8.3

python3-subversion

rhel8-AppStream

RHEL 8.4

python3-talloc-devel

rhel8-CRB

RHEL 8.7

python3-tomli

rhel8-AppStream

RHEL 8.9

python3-tracer

rhel8-AppStream

RHEL 8.4

python3-wheel-wheel

rhel8-AppStream

RHEL 8.1

python3-wx-siplib

rhel8-AppStream

RHEL 8.3

python3.11

rhel8-AppStream

RHEL 8.8

python3.11-attrs

rhel8-CRB

RHEL 8.8

python3.11-cffi

rhel8-AppStream

RHEL 8.8

python3.11-charset-normalizer

rhel8-AppStream

RHEL 8.8

python3.11-cryptography

rhel8-AppStream

RHEL 8.8

python3.11-Cython

rhel8-CRB

RHEL 8.8

python3.11-debug

rhel8-CRB

RHEL 8.8

python3.11-devel

rhel8-AppStream

RHEL 8.8

python3.11-idle

rhel8-CRB

RHEL 8.8

python3.11-idna

rhel8-AppStream

RHEL 8.8

python3.11-iniconfig

rhel8-CRB

RHEL 8.8

python3.11-libs

rhel8-AppStream

RHEL 8.8

python3.11-lxml

rhel8-AppStream

RHEL 8.8

python3.11-mod_wsgi

rhel8-AppStream

RHEL 8.8

python3.11-numpy

rhel8-AppStream

RHEL 8.8

python3.11-numpy-f2py

rhel8-AppStream

RHEL 8.8

python3.11-packaging

rhel8-CRB

RHEL 8.8

python3.11-pip

rhel8-AppStream

RHEL 8.8

python3.11-pip-wheel

rhel8-AppStream

RHEL 8.8

python3.11-pluggy

rhel8-CRB

RHEL 8.8

python3.11-ply

rhel8-AppStream

RHEL 8.8

python3.11-psycopg2

rhel8-AppStream

RHEL 8.8

python3.11-psycopg2-debug

rhel8-CRB

RHEL 8.8

python3.11-psycopg2-tests

rhel8-CRB

RHEL 8.8

python3.11-pybind11

rhel8-CRB

RHEL 8.8

python3.11-pybind11-devel

rhel8-CRB

RHEL 8.8

python3.11-pycparser

rhel8-AppStream

RHEL 8.8

python3.11-PyMySQL

rhel8-AppStream

RHEL 8.8

python3.11-pyparsing

rhel8-CRB

RHEL 8.8

python3.11-pysocks

rhel8-AppStream

RHEL 8.8

python3.11-pytest

rhel8-CRB

RHEL 8.8

python3.11-pyyaml

rhel8-AppStream

RHEL 8.8

python3.11-requests

rhel8-AppStream

RHEL 8.8

python3.11-rpm-macros

rhel8-AppStream

RHEL 8.8

python3.11-scipy

rhel8-AppStream

RHEL 8.8

python3.11-semantic_version

rhel8-CRB

RHEL 8.8

python3.11-setuptools

rhel8-AppStream

RHEL 8.8

python3.11-setuptools-rust

rhel8-CRB

RHEL 8.8

python3.11-setuptools-wheel

rhel8-AppStream

RHEL 8.8

python3.11-six

rhel8-AppStream

RHEL 8.8

python3.11-test

rhel8-CRB

RHEL 8.8

python3.11-tkinter

rhel8-AppStream

RHEL 8.8

python3.11-urllib3

rhel8-AppStream

RHEL 8.8

python3.11-wheel

rhel8-AppStream

RHEL 8.8

python3.11-wheel-wheel

rhel8-CRB

RHEL 8.8

python38-asn1crypto

rhel8-AppStream

RHEL 8.2

python38-atomicwrites

rhel8-CRB

RHEL 8.2

python38-attrs

rhel8-CRB

RHEL 8.2

python38-babel

rhel8-AppStream

RHEL 8.2

python38-cffi

rhel8-AppStream

RHEL 8.2

python38-chardet

rhel8-AppStream

RHEL 8.2

python38-cryptography

rhel8-AppStream

RHEL 8.2

python38-Cython

rhel8-AppStream

RHEL 8.2

python38-debug

rhel8-AppStream

RHEL 8.2

python38-devel

rhel8-AppStream

RHEL 8.2

python38-idle

rhel8-AppStream

RHEL 8.2

python38-idna

rhel8-AppStream

RHEL 8.2

python38-jinja2

rhel8-AppStream

RHEL 8.2

python38-libs

rhel8-AppStream

RHEL 8.2

python38-lxml

rhel8-AppStream

RHEL 8.2

python38-markupsafe

rhel8-AppStream

RHEL 8.2

python38-mod_wsgi

rhel8-AppStream

RHEL 8.2

python38-more-itertools

rhel8-CRB

RHEL 8.2

python38-numpy-doc

rhel8-AppStream

RHEL 8.2

python38-numpy-f2py

rhel8-AppStream

RHEL 8.2

python38-numpy

rhel8-AppStream

RHEL 8.2

python38-packaging

rhel8-CRB

RHEL 8.2

python38-pip-wheel

rhel8-AppStream

RHEL 8.2

python38-pip

rhel8-AppStream

RHEL 8.2

python38-pluggy

rhel8-CRB

RHEL 8.2

python38-ply

rhel8-AppStream

RHEL 8.2

python38-psutil

rhel8-AppStream

RHEL 8.2

python38-psycopg2-doc

rhel8-AppStream

RHEL 8.2

python38-psycopg2-tests

rhel8-AppStream

RHEL 8.2

python38-psycopg2

rhel8-AppStream

RHEL 8.2

python38-py

rhel8-CRB

RHEL 8.2

python38-pycparser

rhel8-AppStream

RHEL 8.2

python38-PyMySQL

rhel8-AppStream

RHEL 8.2

python38-pyparsing

rhel8-CRB

RHEL 8.2

python38-pysocks

rhel8-AppStream

RHEL 8.2

python38-pytest

rhel8-CRB

RHEL 8.2

python38-pytz

rhel8-AppStream

RHEL 8.2

python38-pyyaml

rhel8-AppStream

RHEL 8.2

python38-requests

rhel8-AppStream

RHEL 8.2

python38-resolvelib

rhel8-AppStream

RHEL 8.6

python38-rpm-macros

rhel8-AppStream

RHEL 8.2

python38-scipy

rhel8-AppStream

RHEL 8.2

python38-setuptools-wheel

rhel8-AppStream

RHEL 8.2

python38-setuptools

rhel8-AppStream

RHEL 8.2

python38-six

rhel8-AppStream

RHEL 8.2

python38-test

rhel8-AppStream

RHEL 8.2

python38-tkinter

rhel8-AppStream

RHEL 8.2

python38-urllib3

rhel8-AppStream

RHEL 8.2

python38-wcwidth

rhel8-CRB

RHEL 8.2

python38-wheel-wheel

rhel8-AppStream

RHEL 8.2

python38-wheel

rhel8-AppStream

RHEL 8.2

python38

rhel8-AppStream

RHEL 8.2

python39

rhel8-AppStream

RHEL 8.4

python39-attrs

rhel8-CRB

RHEL 8.4

python39-cffi

rhel8-AppStream

RHEL 8.4

python39-chardet

rhel8-AppStream

RHEL 8.4

python39-cryptography

rhel8-AppStream

RHEL 8.4

python39-Cython

rhel8-CRB

RHEL 8.4

python39-debug

rhel8-CRB

RHEL 8.4

python39-devel

rhel8-AppStream

RHEL 8.4

python39-idle

rhel8-AppStream

RHEL 8.4

python39-idna

rhel8-AppStream

RHEL 8.4

python39-iniconfig

rhel8-CRB

RHEL 8.4

python39-libs

rhel8-AppStream

RHEL 8.4

python39-lxml

rhel8-AppStream

RHEL 8.4

python39-mod_wsgi

rhel8-AppStream

RHEL 8.4

python39-more-itertools

rhel8-CRB

RHEL 8.4

python39-numpy

rhel8-AppStream

RHEL 8.4

python39-numpy-doc

rhel8-AppStream

RHEL 8.4

python39-numpy-f2py

rhel8-AppStream

RHEL 8.4

python39-packaging

rhel8-CRB

RHEL 8.4

python39-pip

rhel8-AppStream

RHEL 8.4

python39-pip-wheel

rhel8-AppStream

RHEL 8.4

python39-pluggy

rhel8-CRB

RHEL 8.4

python39-ply

rhel8-AppStream

RHEL 8.4

python39-psutil

rhel8-AppStream

RHEL 8.4

python39-psycopg2

rhel8-AppStream

RHEL 8.4

python39-psycopg2-doc

rhel8-AppStream

RHEL 8.4

python39-psycopg2-tests

rhel8-AppStream

RHEL 8.4

python39-py

rhel8-CRB

RHEL 8.4

python39-pybind11

rhel8-CRB

RHEL 8.4

python39-pybind11-devel

rhel8-CRB

RHEL 8.4

python39-pycparser

rhel8-AppStream

RHEL 8.4

python39-PyMySQL

rhel8-AppStream

RHEL 8.4

python39-pyparsing

rhel8-CRB

RHEL 8.4

python39-pysocks

rhel8-AppStream

RHEL 8.4

python39-pytest

rhel8-CRB

RHEL 8.4

python39-pyyaml

rhel8-AppStream

RHEL 8.4

python39-requests

rhel8-AppStream

RHEL 8.4

python39-rpm-macros

rhel8-AppStream

RHEL 8.4

python39-scipy

rhel8-AppStream

RHEL 8.4

python39-setuptools

rhel8-AppStream

RHEL 8.4

python39-setuptools-wheel

rhel8-AppStream

RHEL 8.4

python39-six

rhel8-AppStream

RHEL 8.4

python39-test

rhel8-AppStream

RHEL 8.4

python39-tkinter

rhel8-AppStream

RHEL 8.4

python39-toml

rhel8-AppStream

RHEL 8.4

python39-urllib3

rhel8-AppStream

RHEL 8.4

python39-wcwidth

rhel8-CRB

RHEL 8.4

python39-wheel

rhel8-AppStream

RHEL 8.4

python39-wheel-wheel

rhel8-AppStream

RHEL 8.4

qatengine

rhel8-AppStream

RHEL 8.4

qatlib

rhel8-AppStream

RHEL 8.4

qatlib-devel

rhel8-CRB

RHEL 8.4

qatlib-service

rhel8-AppStream

RHEL 8.7

qatlib-tests

rhel8-CRB

RHEL 8.6

qatzip

rhel8-AppStream

RHEL 8.6

qatzip-devel

rhel8-CRB

RHEL 8.6

qatzip-libs

rhel8-AppStream

RHEL 8.6

qemu-kvm-docs

rhel8-AppStream

RHEL 8.6

qemu-kvm-hw-usbredir

rhel8-AppStream

RHEL 8.6

qemu-kvm-ui-opengl

rhel8-AppStream

RHEL 8.6

qemu-kvm-ui-spice

rhel8-AppStream

RHEL 8.6

qgpgme-devel

rhel8-CRB

RHEL 8.4

qt5-qt3d-doc

rhel8-AppStream

RHEL 8.7

qt5-qtbase-doc

rhel8-AppStream

RHEL 8.7

qt5-qtbase-private-devel

rhel8-AppStream

RHEL 8.2

qt5-qtconnectivity-doc

rhel8-AppStream

RHEL 8.7

qt5-qtdeclarative-doc

rhel8-AppStream

RHEL 8.7

qt5-qtgraphicaleffects-doc

rhel8-AppStream

RHEL 8.7

qt5-qtimageformats-doc

rhel8-AppStream

RHEL 8.7

qt5-qtlocation-doc

rhel8-AppStream

RHEL 8.7

qt5-qtmultimedia-doc

rhel8-AppStream

RHEL 8.7

qt5-qtquickcontrols-doc

rhel8-AppStream

RHEL 8.7

qt5-qtquickcontrols2-doc

rhel8-AppStream

RHEL 8.7

qt5-qtscript-doc

rhel8-AppStream

RHEL 8.7

qt5-qtsensors-doc

rhel8-AppStream

RHEL 8.7

qt5-qtserialbus-devel

rhel8-CRB

RHEL 8.5

qt5-qtserialbus-doc

rhel8-AppStream

RHEL 8.7

qt5-qtserialport-doc

rhel8-AppStream

RHEL 8.7

qt5-qtsvg-doc

rhel8-AppStream

RHEL 8.7

qt5-qttools-doc

rhel8-AppStream

RHEL 8.7

qt5-qtwayland-doc

rhel8-AppStream

RHEL 8.7

qt5-qtwebchannel-doc

rhel8-AppStream

RHEL 8.7

qt5-qtwebsockets-doc

rhel8-AppStream

RHEL 8.7

qt5-qtx11extras-doc

rhel8-AppStream

RHEL 8.7

qt5-qtxmlpatterns-doc

rhel8-AppStream

RHEL 8.7

quota-devel

rhel8-CRB

RHEL 8.4

redhat-cloud-client-configuration

rhel8-AppStream

RHEL 8.7

resource-agents-paf

rhel8-HighAvailability

RHEL 8.5

rhc

rhel8-AppStream

RHEL 8.4

rhc-worker-playbook

rhel8-AppStream

RHEL 8.4

rhsm-icons

rhel8-BaseOS

RHEL 8.2

Rig

rhel8-AppStream

RHEL 8.6

rpm-plugin-fapolicyd

rhel8-AppStream

RHEL 8.4

rshim

rhel8-AppStream

RHEL 8.4

rsyslog-mmfields

rhel8-AppStream

RHEL 8.6

rsyslog-omamqp1

rhel8-AppStream

RHEL 8.3

rsyslog-openssl

rhel8-AppStream

RHEL 8.5

rsyslog-udpspoof

rhel8-AppStream

RHEL 8.4

rtla

rhel8-AppStream

RHEL 8.8

ruby-bundled-gems

rhel8-AppStream

RHEL 8.7

ruby-default-gems

rhel8-AppStream

RHEL 8.3

rubygem-rbs

rhel8-AppStream

RHEL 8.5

rubygem-rexml

rhel8-AppStream

RHEL 8.5

rubygem-rss

rhel8-AppStream

RHEL 8.5

rubygem-typeprof

rhel8-AppStream

RHEL 8.5

rust-analyzer

rhel8-AppStream

RHEL 8.8

rust-std-static-wasm32-unknown-unknown

rhel8-AppStream

RHEL 8.5

rust-std-static-wasm32-wasi

rhel8-AppStream

RHEL 8.6

samba-devel

rhel8-CRB

RHEL 8.4

samba-dc-libs

rhel8-BaseOS

RHEL 8.8

samba-dcerpc

rhel8-BaseOS

RHEL 8.8

samba-ldb-ldap-modules

rhel8-BaseOS

RHEL 8.8

samba-tools

rhel8-BaseOS

RHEL 8.8

samba-usershares

rhel8-BaseOS

RHEL 8.8

samba-vfs-iouring

rhel8-AppStream

RHEL 8.5

samba-winexe

rhel8-BaseOS

RHEL 8.4

sat4j

rhel8-AppStream

RHEL 8.4

sblim-cmpi-base

rhel8-AppStream

RHEL 8.1

sblim-gather

rhel8-AppStream

RHEL 8.5

sblim-gather-provider

rhel8-CRB

RHEL 8.5

sblim-indication_helper

rhel8-AppStream

RHEL 8.1

sblim-wbemcli

rhel8-AppStream

RHEL 8.1

setools-console-analyses

rhel8-AppStream

RHEL 8.2

setools-gui

rhel8-AppStream

RHEL 8.2

sevctl

rhel8-AppStream

RHEL 8.5

shadow-utils-subid

rhel8-BaseOS

RHEL 8.6

shadow-utils-subid-devel

rhel8-CRB

RHEL 8.6

sisu

rhel8-AppStream

RHEL 8.2

snactor

rhel8-AppStream

RHEL 8.7

spice-client-win-x64

rhel8-AppStream

RHEL 8.2

spice-client-win-x86

rhel8-AppStream

RHEL 8.2

spice-qxl-wddm-dod

rhel8-AppStream

RHEL 8.2

spice-qxl-xddm

rhel8-AppStream

RHEL 8.2

spice-streaming-agent

rhel8-AppStream

RHEL 8.2

spice-vdagent-win-x64

rhel8-AppStream

RHEL 8.2

spice-vdagent-win-x86

rhel8-AppStream

RHEL 8.2

sshpass

rhel8-AppStream

RHEL 8.6

sssd-idp

rhel8-AppStream

RHEL 8.7

sssd-polkit-rules

rhel8-BaseOS