4.13. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버
RHEL 9의 Python
Python 3.9 는 RHEL 9의 기본 Python 구현입니다. Python 3.9 는 BaseOS 리포지토리의 비표준 python3
RPM 패키지로 배포되고 일반적으로 기본적으로 설치됩니다. Python 3.9 는 RHEL 9의 전체 라이프 사이클 동안 지원됩니다.
Python 3 의 추가 버전은 AppStream 리포지토리를 통해 라이프사이클이 짧은 RPM 패키지로 배포되며 동시에 설치할 수 있습니다.
python
명령(/usr/bin/python
) 및 기타 Python- 관련 명령(예: pip
)은 버전이 없는 형식으로 사용할 수 있으며 기본 Python 3.9 버전을 가리킵니다.
Python 2 는 RHEL 9와 함께 배포되지 않습니다.
RHEL 9의 Python 에 대한 자세한 내용은 Python 소개를 참조하십시오.
(BZ#1941595, JIRA:RHELPLAN-80598)
Node.js 16
사용 가능
RHEL 9는 JavaScript 프로그래밍 언어로 빠르고 확장 가능한 네트워크 애플리케이션을 구축하기 위한 소프트웨어 개발 플랫폼인 LS(Long Term Support) 버전 16을 제공합니다.
Node.js 14
대신 Node.js 16
의 주요 변경 사항은 다음과 같습니다.
-
V8
엔진이 버전 9.4로 업그레이드되었습니다. -
npm
패키지 관리자가 버전 8.3.1로 업그레이드되었습니다. -
새로운 timer
Promises
API는Promise
오브젝트를 반환하는 대체 타이머 함수 세트를 제공합니다. -
Node.js
는 이제OpenSSL 3.0
과 호환됩니다. -
Node.js
는 이제 새로운 실험적인Web Streams
API와 실험적인 ECMAScript 모듈 (ESM) 로더 API를 제공합니다.
Node.js 16
은 RPM 패키지로 쉽게 설치할 수 있는 이 애플리케이션 스트림의 초기 버전입니다. Node.js 16
은 RHEL 9보다 라이프사이클이 짧습니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오. 추가 Node.js
버전은 RHEL 9의 향후 마이너 릴리스에서 라이프사이클이 짧은 모듈로 제공됩니다.
RHEL 9에서는 Ruby 3.0
을 제공합니다.
RHEL 9는 Ruby 2.7
에 비해 여러 성능 향상, 버그 및 보안 수정, 새로운 기능을 제공하는 Ruby 3.0.3
과 함께 배포됩니다.
주요 개선 사항은 다음과 같습니다.
동시성 및 병렬 기능:
-
스레드 안전한 병렬 실행을 제공하는 actor-model 추상화는 실험적인 기능으로 제공됩니다.
-
파이버 스케줄러
는 실험적인 기능으로 도입되었습니다.파이버 스케줄러
는 기존 코드를 변경하지 않고 경량의 동시성을 활성화하는 차단 작업을 차단합니다.
-
스레드 안전한 병렬 실행을 제공하는 actor-model 추상화는 실험적인 기능으로 제공됩니다.
정적 분석 기능:
-
Ruby
프로그램의 구조를 설명하는RBS
언어가 도입되었습니다.RBS
에서 작성된 유형 정의를 구문 분석하기 위해rbs gem이 추가되었습니다. -
Ruby
코드의 유형 분석 툴인TypeProf
유틸리티가 도입되었습니다.
-
-
케이스/인
표현식과 패턴 일치는 더 이상 실험적이지 않습니다. - 실험적 기능인 한 줄 패턴 일치는 재설계되었습니다.
- 패턴 찾기가 실험적 기능으로 추가되었습니다.
다음과 같은 성능 개선이 구현되었습니다.
-
긴 코드를
Interactive Ruby Shell(IRB)
에 붙여넣는 것이 훨씬 빨라졌습니다. -
시간 측정을 위해
measure
명령이 recordsB
에 추가되었습니다.
기타 주요 변경 사항은 다음과 같습니다.
- 이제 키워드 인수가 다른 인수와 분리되어 있습니다.
-
사용자가 설치한 gems의 기본 디렉터리는
$HOME/.local/share/gem/
입니다.$HOME/.gem/
디렉토리는 $HOME/.gem/ 디렉토리에 이미 있는 경우가 아니면 $HOME/.local/share/gem/입니다.
Ruby 3.0
은 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다. 추가 Ruby
버전은 RHEL 9의 향후 마이너 릴리스에서 라이프사이클이 짧은 모듈로 제공됩니다.
(JIRA:RHELPLAN-80758)
RHEL 9에는 Perl 5.32
도입
RHEL 9에는 버전 5.30에 비해 여러 버그 수정 및 개선 사항을 제공하는 Perl 5.32
가 포함되어 있습니다.
주요 개선 사항은 다음과 같습니다.
-
Perl
은 이제 유니코드 버전 13.0을 지원합니다. -
qr
quote-like Operator가 향상되었습니다. -
POSIX::mblen()
,mbtowc
, 및wctomb
함수는 이제 시프트 주 로캘에서 작동하고 C99에서 스레드로부터 안전하며, 스레드가 스레드 스레드가 로캘이 있는 플랫폼에서 실행될 때 스레드로부터 안전합니다. 이제 길이 매개 변수는 선택 사항입니다. -
새로운 실험적
isa
infix 연산자는 지정된 개체가 지정된 클래스의 인스턴스인지 또는 클래스에서 파생되는지를 테스트합니다. - 알파 주장은 더 이상 실험적이지 않습니다.
- 스크립트 실행은 더 이상 실험적이지 않습니다.
- 이제 기능 검사 속도가 빨라집니다.
-
Perl
은 이제 최적화 전에 컴파일된 패턴을 덤프할 수 있습니다.
Perl 5.32
는 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다. 추가 Perl
버전은 RHEL 9의 향후 마이너 릴리스에서 라이프사이클이 짧은 모듈로 제공됩니다.
(JIRA:RHELPLAN-80759)
RHEL 9에는 PHP 8.0
포함
RHEL 9는 PHP 8.0
과 함께 배포되었으며 버전 7.4에 비해 여러 버그 수정 및 개선 사항을 제공합니다.
주요 개선 사항은 다음과 같습니다.
- 새로운 명명된 인수는 순서가 독립적이고 자체 문서화되며 필수 매개변수만 지정할 수 있습니다.
- 새로운 특성을 사용하면 PHP의 네이티브 구문에 구조화된 메타데이터를 사용할 수 있습니다.
- 새로운 통합 유형을 사용하면 유형 조합에 대해 PHPDoc 주석 대신 런타임에서 검증된 네이티브 통합 유형 선언을 사용할 수 있습니다.
- 이제 매개 변수 유효성 검사가 실패하는 경우 내부 함수가 경고 대신 오류 예외를 더 일관되게 발생시킵니다.
- 새로운 Just-In-Time 컴파일 엔진은 애플리케이션 성능을 크게 향상시킵니다.
-
PHP의
Xdebug
디버깅 및 생산성 확장 기능이 버전 3으로 업데이트되었습니다. 이 버전에서는Xdebug 2
에 비해 기능 및 구성의 주요 변경 사항이 추가되었습니다.
PHP 8.0
은 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다. 추가 PHP
버전은 RHEL 9의 향후 마이너 릴리스에서 라이프사이클이 짧은 모듈로 제공됩니다.
자세한 내용은 PHP 스크립팅 언어 사용을 참조하십시오.
RHEL 9에서는 Git 2.31
및 Git LFS 2.13
을 제공합니다.
RHEL 9는 RHEL 8에서 사용할 수 있는 버전 2.27에 비해 여러 개선사항 및 성능 향상을 제공하는 Git 2.31
과 함께 배포됩니다. 주요 변경 사항은 다음과 같습니다.
-
이제
git status
명령에서 스파스 체크 아웃의 상태를 보고합니다. -
이제
git archive
명령과 함께--add-file
옵션을 사용하여 트리-ish 식별자의 스냅샷에 추적되지 않은 파일을 포함할 수 있습니다. -
clone.defaultremotename
구성 변수를 사용하여 소스 원격 리포지토리의 닉네임을 사용자 지정할 수 있습니다. -
git format-patch
명령으로 생성된 출력 파일 이름의 최대 길이를 구성할 수 있습니다. 이전에는 길이 제한이 64바이트였습니다. - 더 이상 사용되지 않는 PCRE1 라이브러리 지원이 제거되었습니다.
또한 Git Large File Storage (LFS)
확장 버전 2.13을 사용할 수 있습니다. RHEL 8에서 배포된 2.11 버전에 비해 개선 사항은 다음과 같습니다.
-
Git LFS
는 이제 SHA-256 리포지토리를 지원합니다. -
Git LFS
는 이제socks5h
프로토콜을 지원합니다. -
git lfs install
및git lfs uninstall
명령에 새로운--worktree
옵션을 사용할 수 있습니다. -
git lfs migrate import
명령에 새로운--above
매개변수를 사용할 수 있습니다.
(BZ#1956345, BZ#1952517)
RHEL 9의 Subversion 1.14
RHEL 9는 Subversion 1.14
와 함께 배포됩니다. Subversion 1.14
는 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다. 추가 Subversion
버전은 RHEL 9의 향후 마이너 릴리스에서 라이프사이클이 짧은 모듈로 제공됩니다.
(JIRA:RHELPLAN-82578)
Apache HTTP Server에서 주요 변경 사항
RHEL 9.0에서는 Apache HTTP Server 버전 2.4.51을 제공합니다. 버전 2.4.37에 대한 주요 변경 사항은 다음과 같습니다.
Apache HTTP Server Control Interface (
apachectl
):-
이제
apachectl 상태
출력에 대해systemctl
pager가 비활성화되어 있습니다. -
이제 추가 인수를 전달하면 경고를 제공하는 대신
apachectl
명령이 실패합니다. -
이제
apachectl normal-stop
명령이 즉시 반환됩니다. -
이제
apachectl configtest
명령은 SELinux 컨텍스트를 변경하지 않고httpd -t
명령을 실행합니다. -
RHEL의
apachectl(8)
도움말 페이지는 이제 업스트림apachectl
과 완전히 다른 문서를 사용합니다.
-
이제
Apache eXtenSion 툴(
apxs
):-
/usr/bin/apxs
명령은 더 이상httpd
패키지를 빌드할 때 컴파일러 최적화 플래그를 적용으로 사용하거나 노출하지 않습니다. 이제/usr/lib64/httpd/build/vendor-apxs
명령을 사용하여httpd
를 빌드하는 데 사용된 것과 동일한 컴파일러 플래그를 적용할 수 있습니다.vendor-apxs
명령을 사용하려면 먼저redhat-rpm-config
패키지를 설치해야 합니다.
-
Apache 모듈:
-
mod_lua
모듈이 이제 별도의 패키지로 제공됩니다. -
Apache HTTP Server의 새로운
mod_jk
커넥터는 Apache JServ Protocol(AJP)를 사용하여 웹 서버를 Apache Tomcat 및 기타 백엔드와 연결하는 모듈입니다. -
새로운
mod_proxy_cluster
모듈은 통신 채널을 사용하여 로드 밸런서의 요청을 애플리케이션 서버 노드 세트 중 하나로 전달하는 httpd 기반 로드 밸런서를 제공합니다. 애플리케이션 서버 노드는 이 연결을 사용하여 MCMP( Mod-Cluster Management Protocol)라는 사용자 지정 HTTP 방법 세트를 통해 서버 측 부하 분산 요인 및 라이프사이클 이벤트를 로드 밸런서로 다시 전송합니다. 이 추가 피드백 채널을 통해mod_proxy_cluster
는 다른 로드 밸런싱 솔루션에서 찾을 수 없는 수준의 인텔리전스를 제공할 수 있습니다. 이 모듈을 사용하려면 백엔드 서버에ModCluster
클라이언트를 설치해야 성공적으로 통신할 수 있습니다.
-
구성 구문 변경 사항:
-
mod_access_compat
모듈에서 제공하는 더 이상 사용되지 않는Allow
지시문에서 주석(#
문자)이 이제 자동으로 무시되는 대신 구문 오류를 트리거합니다.
-
기타 변경 사항:
- 이제 커널 스레드 ID가 오류 로그 메시지에서 직접 사용되어 정확하고 간결하게 만듭니다.
- 많은 사소한 개선 사항 및 버그 수정
- 모듈 작성자는 다양한 새 인터페이스를 사용할 수 있습니다.
RHEL 8 이후 httpd
모듈 API에 대한 이전 버전과 호환되지 않는 변경 사항은 없습니다.
Apache HTTP Server 2.4는 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다.
자세한 내용은 Apache HTTP 웹 서버 설정을 참조하십시오.
(JIRA:RHELPLAN-68364, BZ#1931976, JIRA:RHELPLAN-80725)
RHEL 9에서 Nginx 1.20
사용 가능
RHEL 9에는 nginx 1.20
웹 및 프록시 서버가 포함되어 있습니다. 이번 릴리스에서는 버전 1.18에 비해 여러 버그 수정, 보안 수정, 새로운 기능 및 개선 사항이 포함되어 있습니다.
새로운 기능:
-
Nginx
는 이제 OCSP(Online Certificate Status Protocol)를 사용하여 클라이언트 SSL 인증서 검증을 지원합니다. -
이제
Nginx는 최소 사용 가능한 공간에 따라 캐시 정리를 지원합니다. 이 지원은proxy_cache_path
지시문의min_free
매개변수로 구현됩니다. -
변수의 값을 설정할 수 있는 새로운
ngx_stream_set_module
모듈이 추가되었습니다. -
nginx
용으로 외부 동적 모듈을 빌드하기 위한 RPM 매크로 및nginx
소스 코드를 포함하여 필요한 모든 파일을 제공하는 새로운nginx-mod-devel
패키지가 추가되었습니다.
향상된 지시문:
-
이제
ssl_conf_command
및ssl_reject_handshake
와 같은 여러 새 지시문을 사용할 수 있습니다. -
proxy_cookie_flags
지시문은 이제 변수를 지원합니다.
HTTP/2 지원 개선:
-
이제
ngx_http_v2
모듈에lingering_close
,lingering_time
,lingering_timeout
지시문이 포함됩니다. -
HTTP/2의 연결 처리가 HTTP/1.x와 일치합니다.
nginx 1.20
에서 제거된http2_recv_timeout
,http2_idle_timeout
,http2_max_requests
지시문 대신keepalive_timeout
및keepalive_requests
지시문을 사용합니다.
Nginx 1.20
은 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다. 추가 nginx
버전은 RHEL 9의 향후 마이너 릴리스에서 라이프사이클이 짧은 모듈로 제공됩니다.
자세한 내용은talPod Autoscaler 설정 및 구성을 참조하십시오.
RHEL 9의 Varnish Cache 6.6
RHEL 9에는 고성능 HTTP 역방향 프록시인 Varnish Cache 6.6
이 포함되어 있습니다.
6.0 버전부터 주요 변경 사항은 다음과 같습니다.
-
varnishlog
와 같은 로그 처리 툴의 성능 향상 - 통계 정확도 개선
- 캐시 조회의 여러 최적화
- 다양한 구성 변경
- 다양한 개선 사항 및 버그 수정
Varnish Cache 6
는 RPM 패키지로 쉽게 설치할 수 있는 이 애플리케이션 스트림의 초기 버전입니다.
RHEL 9 소개 Squid 5
RHEL 9는 웹 클라이언트를 위한 고성능 프록시 캐싱 서버인 Squid 5.2
와 함께 배포되어 FTP, Gopher 및 HTTP 데이터 오브젝트를 지원합니다. 이 릴리스에서는 버전 4에 대한 여러 버그 수정, 보안 수정, 새로운 기능 및 향상된 기능을 제공합니다.
새로운 기능:
Squid
는 Happyballballs (HE) 알고리즘을 사용하여 책임을 향상시킵니다.-
Squid
는 이제 즉시 수신된 IP 주소를 사용합니다. 전달을 요청하려면 모든 잠재적인 전달 대상이 완전히 해결되기를 기다리는 대신 필요합니다. -
새로운 지시문을 사용할 수 있습니다.
happy_eyeballs_connect_gap
,happy_eyeballs_connect_limit
,happy_eyeballs_connect_timeout
지시문. -
dns_v4_first
지시문이 제거되었습니다.
-
-
이제
squid
에서 CDN(Content Delivery Networks)의 루프 탐지용 소스로CDN-Loop
헤더를 사용합니다. -
squid
는 SSL 충돌에 대한 피어링 지원을 제공합니다. - 새로운 ICAP(Internet Content Adaptation Protocol) 추적 기능을 사용할 수 있으므로 ICAP 에이전트가 메시지 본문 후에 메시지를 안정적으로 보낼 수 있습니다.
설정 옵션 변경 사항:
-
mark_client_packet
설정 옵션이clientside_mark
를 대체했습니다. -
shared_transient_entries_limit
구성 옵션이collapsed_forwarding_shared_entries_limit
.
squid 5
는 RPM 패키지로 쉽게 설치할 수 있는 이 애플리케이션 스트림의 초기 버전입니다.
자세한 내용은 Squid 캐싱 프록시 서버 구성을 참조하십시오.
RHEL 9의 MariaDB 10.5
RHEL 9는 MariaDB 10.5
를 제공합니다. MariaDB 10.5
는 RPM 패키지로 쉽게 설치할 수 있는 이 애플리케이션 스트림의 초기 버전입니다. 추가 MariaDB
버전은 RHEL 9의 향후 마이너 릴리스에서 라이프사이클이 짧은 모듈로 제공됩니다.
자세한 내용은 MariaDB 사용을 참조하십시오.
RHEL 9에는 MySQL 8.0
이 포함되어 있습니다.
RHEL 9는 MySQL 8.0
과 함께 배포됩니다. MySQL 8.0
은 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다. MySQL 8.0
의 라이프 사이클은 RHEL 9보다 짧습니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
사용법에 대한 자세한 내용은 MySQL 사용을 참조하십시오.
(JIRA:RHELPLAN-78673)
RHEL 9에서는 PostgreSQL 13
을 제공합니다.
PostgreSQL 13
은 RHEL 9에서 사용할 수 있습니다. PostgreSQL 13
은 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다. 추가 PostgreSQL
버전은 RHEL 9의 향후 마이너 릴리스에서 라이프사이클이 짧은 모듈로 제공됩니다.
자세한 내용은 PostgreSQL 사용을 참조하십시오.
(JIRA:RHELPLAN-78675)
RHEL 9의 Redis 6.2
RHEL 9는 RHEL 8에서 사용할 수 있는 버전 6.0에 비해 다양한 버그 및 보안 수정 및 개선 사항을 제공하는 Redis 6.2
와 함께 배포됩니다.
특히 Redis
서버 구성 파일은 이제 전용 디렉터리 /etc/redis/redis.conf
및 /etc/redis/sentinel.conf
에 있습니다. RHEL 8 버전에서 이러한 파일의 위치는 각각 /etc/redis.conf
및 /etc/redis-sentinel.conf
입니다.
Redis 6
은 RPM 패키지로 쉽게 설치할 수 있는 이 Application Stream의 초기 버전입니다.
새로운 패키지: perl-Module-Signature
RHEL 9에는 perl-Module-Signature
Perl 모듈이 도입되었습니다. 이 새로운 모듈을 사용하면 cpan
에 대한 서명 검사를 활성화하여 CVE-2020-16156을 완화할 수 있습니다. 자세한 내용은 perl-App-cpanminus 및 CVE-2020-16156에서 CVE-2020-16154를 완화하는 방법을 참조하십시오.
(BZ#2039361)