4.11. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버
RHEL 9에서 사용 가능한 Python 3.11
RHEL 9.2에는 새로운 패키지 python3.11
에서 제공하는 Python 3.11과 ubi9/python-311
컨테이너 이미지용으로 빌드된 패키지 제품군이 도입되었습니다.
이전에 릴리스된 Python 3.9에 비해 주요 개선 사항은 다음과 같습니다.
- 성능이 크게 향상되었습니다.
-
구조 패턴 새로운
match
키워드를 사용하여 일치 (다른 언어로전환
하는 것과 유사). - 예를 들어 닫히지 않은 대괄호 또는 대괄호를 나타내는 오류 메시지가 개선되었습니다.
- 디버깅 및 기타 사용 사례를 위한 정확한 라인 번호입니다.
- 정의를 요약하여 여러 줄에 컨텍스트 관리자를 정의하도록 지원합니다.
-
새로운
X | Y
type union 연산자, variadic generic 및 새로운Self
유형과 같은 type hints 및typing
모듈과 관련된 다양한 새로운 기능입니다. - 역추적에서 오류를 발생시킨 표현식을 가리키는 정확한 오류 위치입니다.
-
TOML 구문 분석을 지원하는 새로운
tomllib
표준 라이브러리 모듈입니다. -
예외 그룹 및 새로운
except*
구문을 사용하여 여러 관련이 없는 예외를 동시에 작성하고 처리하는 기능.
Python 3.11 및 이를 위해 빌드된 패키지는 동일한 시스템에서 Python 3.9와 병렬로 설치할 수 있습니다.
python3.11
스택에서 패키지를 설치하려면 다음을 사용합니다. 예를 들면 다음과 같습니다.
# dnf install python3.11 # dnf install python3.11-pip
인터프리터를 실행하려면 다음을 사용합니다. 예를 들면 다음과 같습니다.
$ python3.11 $ python3.11 -m pip --help
자세한 내용은 Python 설치 및 사용을 참조하십시오.
Python 3.11은 RHEL 9의 기본 Python 구현인 Python 3.9보다 라이프 사이클이 짧습니다. Red Hat Enterprise Linux Application Streams 라이프 사이클을 참조하십시오.
nodejs:18
rebased to version 18.14 with npm
rebased to version 9
업데이트된 Node.js 18.14
에는 버전 8에서 버전 9로 npm
의 SemVer 주요 업그레이드가 포함되어 있습니다. 이 업데이트는 유지 관리 이유로 필요했으며 npm
구성을 조정해야 할 수 있습니다.
특히 특정 레지스트리에 범위가 지정되지 않은 인증 관련 설정은 더 이상 지원되지 않습니다. 이러한 변경은 보안상의 이유로 변경되었습니다. 범위가 지정되지 않은 인증 구성을 사용하면 제공된 토큰이 .npmrc
파일에 나열된 모든 레지스트리로 전송되었습니다.
범위가 지정되지 않은 인증 토큰을 사용하는 경우 .npmrc
파일에서 레지스트리 범위 토큰을 생성하고 제공합니다.
.npmrc
파일의 //registry.npmjs.org/: _auth
와 같이 _auth를 사용하는 구성 행이 있는 경우 해당 행을
로 바꾸고 생성한 범위가 지정된 토큰을 제공합니다.
//registry.npmjs.org/:_auth
Token=${NPM_TOKEN}
전체 변경 사항 목록은 업스트림 변경 로그를 참조하십시오.
Git
버전 2.39.1로 업데이트
Git
버전 관리 시스템이 버전 2.39.1로 업데이트되어 이전에 릴리스된 버전 2.31에 대한 버그 수정, 개선 사항 및 성능 개선 사항을 제공합니다.
주요 개선 사항은 다음과 같습니다.
-
git log
명령에서git describe
출력의 형식 자리 표시자 지원:git log --format=%(describe)
이제
git commit
명령에서--fixup<commit
> 옵션을 지원하여 로그 메시지를 변경하지 않고 커밋 내용을 수정할 수 있습니다. 이번 업데이트를 통해 다음을 사용할 수도 있습니다.-
메시지와 콘텐츠를 모두 변경하는
--fixup=amend:<commit
> 옵션입니다. -
커밋 메시지만 업데이트하는 --fixup=reword:&
lt;commit> 옵션입니다.
-
메시지와 콘텐츠를 모두 변경하는
-
새로운
--reject-shallow
옵션을git clone
명령과 함께 사용하여 단순 리포지토리에서 복제를 비활성화할 수 있습니다. -
git branch
명령에서--recurse-submodules
옵션을 지원합니다. 이제
git merge-tree
명령을 사용하여 다음을 수행할 수 있습니다.- 두 개의 분기가 병합될 수 있는지 테스트합니다.
- 분기가 병합되면 병합 커밋이 발생하는 트리를 계산합니다.
-
새로운
safe.bareRepository
구성 변수를 사용하여 베어 리포지토리를 필터링할 수 있습니다.
git-lfs
버전 3.2.0으로 업데이트
Git LFS(Large File Storage)
확장이 버전 3.2.0으로 업데이트되어 이전에 릴리스된 버전 2.13에 대한 버그 수정, 개선 사항 및 성능이 향상되었습니다.
주요 변경 사항은 다음과 같습니다.
-
Git LFS
에는 순수한 SSH 기반 전송 프로토콜이 도입되었습니다. -
Git LFS
는 이제 병합 드라이버를 제공합니다. -
이제
git lfs fsck
유틸리티에서 포인터가 정식이고 예상되는 LFS 파일의 형식이 올바른지 추가로 확인합니다. - NTLM(NT LAN Manager) 인증 프로토콜 지원이 제거되었습니다. 대신 Kerberos 또는 기본 인증을 사용합니다.
새 모듈 스트림: nginx:1.22
이제 nginx 1.22
웹 및 프록시 서버를 nginx:1.22
모듈 스트림으로 사용할 수 있습니다. 이번 업데이트에서는 이전에 출시된 버전 1.20에 비해 여러 버그 수정, 보안 수정, 새로운 기능 및 개선 사항을 제공합니다.
새로운 기능:
Nginx는
이제 다음을 지원합니다.-
OpenSSL 3.0을 사용할 때 OpenSSL 3.0 및
SSL_sendfile()
함수입니다. - PCRE2 라이브러리입니다.
-
메일
프록시 모듈에서 POP3 및 CloudEvent 파이프 개요
-
OpenSSL 3.0을 사용할 때 OpenSSL 3.0 및
-
Nginx
는 이제Auth-SSL-Protocol
및Auth-SSL-Cipher
헤더 행을 메일 프록시 인증 서버에 전달합니다.
향상된 지시문:
-
이제
ssl_conf_command
및ssl_reject_handshake
와 같은 여러 개의 새 지시문을 사용할 수 있습니다. -
proxy_cookie_flags
지시문에서 이제 변수를 지원합니다. -
Nginx는 이제 proxy_ssl_certificate ,
proxy_ssl_certificate
_key ,grpc
,_ssl_certificate
_keygrpc_ssl_certificate_key
,uwsgi_ssl_certificate
,uwsgi_ssl_certificate_key
등의 지시문을 지원합니다. -
stream 모듈의
listen
지시문은 이제 수신 대기 소켓에TCP Fast Open
모드를 활성화하는 새로운fastopen
매개 변수를 지원합니다. -
새로운
max_errors
지시문이mail
프록시 모듈에 추가되었습니다.
다른 변경 사항:
Nginx
는 다음과 같은 경우 항상 오류를 반환합니다.-
CONNECT
방법이 사용됩니다. -
Content-Length
및Transfer-Encoding
헤더는 요청에 지정됩니다. - 요청 헤더 이름에는 공백 또는 제어 문자가 포함되어 있습니다.
-
Host
요청 헤더 줄에는 공백 또는 제어 문자가 포함되어 있습니다.
-
-
Nginx
는 이제Transfer-Encoding
헤더를 포함하는 모든 HTTP/1.0 요청을 차단합니다. -
Nginx
는 이제 ALPN(Application Layer Protocol Negotiation)을 사용하여 HTTP/2 연결을 설정하고 NPN(Next Protocol Negotiation) 프로토콜을 더 이상 지원하지 않습니다.
nginx:1.22
스트림을 설치하려면 다음을 사용합니다.
# dnf module install nginx:1.22
자세한 내용은 NGINX 설정 및 구성을 참조하십시오.
nginx
모듈 스트림에 대한 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클을 참조하십시오.
Bugzilla:2096174
mod_security
는 버전 2.9.6로 재기반
Apache HTTP Server의 mod_security
모듈이 2.9.6 버전으로 업데이트되어 이전에 사용 가능한 버전 2.9.3에 새로운 기능, 버그 수정, 보안 수정 사항을 제공합니다.
주요 개선 사항은 다음과 같습니다.
-
modsecurity.conf-recommended
파일에서 조정된 구문 분석기 활성화 규칙입니다. -
mod_security
가 HTTP 다중 파트 요청을 구문 분석하는 방식 개선 -
새로운
MULTIPART_PART_HEADERS
컬렉션을 추가했습니다. - 포맷된 로그 타임 스탬프에 마이크로초 타임스탬프 확인이 추가되었습니다.
- 누락된 지오국가가 추가되었습니다.
새 패키지: tomcat
RHEL 9.2에는 Apache Tomcat 서버 버전 9가 도입되었습니다. Tomcat은 Java Servlet 및 JavaServer Pages 기술을 위한 공식 참조 구현에 사용되는 서블릿 컨테이너입니다. Java Servlet 및 JavaServer Pages 사양은 Sun에서 Java Community Process에 따라 개발했습니다. Tomcat은 공개 및 참여 환경에서 개발되었으며 Apache Software License 버전 2.0에 따라 출시되었습니다.
Bugzilla:2160511
새 모듈 스트림: postgresql:15
RHEL 9.2에는 PostgreSQL 15
가 postgresql:15
모듈 스트림으로 도입되었습니다. PostgreSQL 15
는 버전 13에 비해 여러 가지 새로운 기능과 향상된 기능을 제공합니다. 주요 변경 사항은 다음과 같습니다.
이제 하위 스크립트를 사용하여
PostgreSQL
JSON 데이터에 액세스할 수 있습니다. 예제 쿼리:SELECT ('{ "postgres": { "release": 15 }}'::jsonb)['postgres']['release'];
-
PostgreSQL
은 이제 다중 범위 데이터 유형을 지원하고range_agg
함수를 확장하여 다중 범위 데이터 유형을 집계합니다. PostgreSQL
은 모니터링 및 관찰 기능을 향상시킵니다.-
이제
COPY
명령 및 WAL(Write-ahead-log) 활동 진행 상황을 추적할 수 있습니다. -
PostgreSQL
은 이제 복제 슬롯에 대한 통계를 제공합니다. -
compute_query_id
매개변수를 활성화하면pg_stat_activity
또는EXPLAIN VERBOSE
를 포함한 여러PostgreSQL
기능을 통해 쿼리를 고유하게 추적할 수 있습니다.
-
이제
PostgreSQL
에서는 다음을 통해 쿼리 병렬 처리 지원이 향상되었습니다.- 병렬 순차적 검사의 성능이 향상되었습니다.
-
RETURN QUERY
명령을 사용할 때 병렬 쿼리를 실행할 수 있는 SQL Procedural Language(PL/pgSQL
)의 기능입니다. -
REFRESH MATERIALIZED VIEW
명령에서 병렬 활성화.
-
PostgreSQL
에는 이제 SQL 표준MERGE
명령이 포함됩니다.MERGE
를 사용하여 단일 문에ECDHE ,UPDATE
,DELETE
작업을 포함할 수 있는 조건부 SQL 문을 작성할 수 있습니다. -
PostgreSQL
은 정규식을 사용하여 문자열을 검사하는 데 필요한 다음과 같은 새로운 함수를 제공합니다.regexp_count
(),regexp_instr()
,regexp_like()
및regexp_substr()
. -
PostgreSQL
에는 view creator가 아닌 view caller의 권한으로 데이터를 쿼리하는 데 사용할 수 있는security_invoker
매개변수가 추가되었습니다. 이렇게 하면 뷰 호출자에게 기본 데이터 작업에 대한 올바른 권한이 있는지 확인할 수 있습니다. -
PostgreSQL
은 아카이브 및 백업 기능의 성능을 향상시킵니다. -
PostgreSQL
은LZ4
및Zstandard
(zstd
) 무해한 압축 알고리즘에 대한 지원을 추가합니다. -
PostgreSQL
은 메모리 내 및 디스크상의 정렬 알고리즘을 개선합니다. -
업데이트된
postgresql.service
systemd 장치 파일은 이제 네트워크가 가동된 후postgresql
서비스가 시작되도록 합니다.
다음 변경 사항은 이전 버전과 호환되지 않습니다.
공용 스키마의 기본 권한이 수정되었습니다. 새로 생성된 사용자는
GRANT ALL ON SCHEMA public TO myuser;
명령을 사용하여 권한을 명시적으로 부여해야 합니다. 예를 들면 다음과 같습니다.postgres=# CREATE USER mydbuser; postgres=# GRANT ALL ON SCHEMA public TO mydbuser; postgres=# \c postgres mydbuser postgres=$ CREATE TABLE mytable (id int);
-
libpq
PQsendQuery()
기능은 더 이상 파이프라인 모드에서 지원되지 않습니다. 대신PQsendQueryParams()
함수를 사용하도록 영향을 받는 애플리케이션을 수정합니다.
PostgreSQL 사용을 참조하십시오.
postgresql:15
스트림을 설치하려면 다음을 사용합니다.
# dnf module install postgresql:15
RHEL 9 내의 이전 postgresql
스트림에서 업그레이드하려면 RHEL 9 버전의 PostgreSQL
으로 마이그레이션에 설명된 대로 PostgreSQL 데이터를 마이그레이션합니다.
postgresql
모듈 스트림의 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클을 참조하십시오.