

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 프로그래밍 런타임 시작하기
<a name="language-runtimes"></a>

AL2는 특정 언어 런타임의 다양한 버전을 제공합니다. 여러 버전을 동시에 지원하는 PHP와 같은 업스트림 프로젝트로 작업합니다. 이름 버전이 지정된 패키지를 설치하고 관리하는 방법에 대한 정보를 찾으려면 `yum` 명령을 사용하여 이러한 패키지를 검색하고 설치합니다. 자세한 내용은 [패키지 리포지토리](ec2.md#package-repository) 단원을 참조하십시오.

다음 주제에서는 AL2에서 각 언어 런타임이 작동하는 방식을 설명합니다.

**Topics**
+ [CAL2Fortran의 C\$1\$1, 및](c-cplusplus.md)
+ [AL2로 이동](go.md)
+ [Java AL2의](java.md)
+ [Perl AL2의](perl.md)
+ [PHP AL2의](php.md)
+ [Python AL2의](python.md)
+ [AL2의 Rust](rust.md)

# CAL2Fortran의 C\$1\$1, 및
<a name="c-cplusplus"></a>

AL2에는 GNU 컴파일러 컬렉션(GCC)과의 Clang 프런트엔드가 모두 포함됩니다LLVM.

의 메이저 버전은 AL2 수명 기간 동안 일정하게 GCC 유지됩니다. 버그 및 보안 수정 사항은 AL2에 GCC 있는의 메이저 버전으로 백포트될 수 있습니다.

 기본적으로 AL2에는 거의 모든 패키지를 빌드GCC하는 버전 7.3이 포함되어 있습니다. `gcc10` 패키지는 제한된 범위에서 GCC 10을 사용할 수 있지만 패키지를 빌드하는 데 GCC 10을 사용하지 않는 것이 좋습니다.

 AL2 RPMs을 빌드하는 기본 컴파일러 플래그에는 일부 최적화 및 강화 플래그가 포함됩니다. 를 사용하여 자체 코드를 빌드하는 경우 일부 최적화 및 강화 플래그를 포함하는 것이 좋습니다GCC.

 AL2023의 기본 컴파일러 및 최적화 플래그는 AL2에 있는 기능을 개선합니다.

# AL2로 이동
<a name="go"></a>

 AL2와 함께 제공되는 도구 체인을 사용하여 Amazon Linux[https://go.dev/](https://go.dev/)에서에 작성된 자체 코드를 빌드할 수 있습니다.

 Go 도구 체인은 AL2 수명 주기 동안 업데이트됩니다. 이는 배송하는 도구 체인의 CVE에 대한 응답이거나 다른 패키지의 CVE를 해결하기 위한 사전 조건일 수 있습니다.

 Go는 비교적 빠르게 움직이는 프로그래밍 언어입니다. Go에 작성된 기존 애플리케이션이 새 버전의 Go 도구 체인에 적응해야 하는 상황이 있을 수 있습니다. Go에 대한 자세한 내용은 [Go 1 및 Go 프로그램의 미래](https://go.dev/doc/go1compat) 섹션을 참조하세요.

 AL2는 수명 주기 동안 새로운 버전의 Go 도구 체인을 통합하지만 업스트림 Go 릴리스에서는 잠기지 않습니다. 따라서 Go 언어 및 표준 라이브러리의 최첨단 기능을 사용하여 Go 코드를 빌드하려는 경우 AL2에 제공된 Go 도구 체인을 사용하는 것이 적합하지 않을 수 있습니다.

 AL2 수명 동안 이전 패키지 버전은 리포지토리에서 제거되지 않습니다. 이전 Go 도구 체인이 필요한 경우 최신 Go 도구 체인의 버그 및 보안 수정을 포기하고 RPM에 사용할 수 있는 것과 동일한 메커니즘을 사용하여 리포지토리에서 이전 버전을 설치하도록 선택할 수 있습니다.

 AL2에서 자체 Go 코드를 빌드하려면이 Go 도구 체인이 AL2 수명 주기 동안 진행될 수 있다는 사실을 알고 AL2에 포함된 도구 체인을 사용할 수 있습니다.

# Java AL2의
<a name="java"></a>

 AL2는 Java 기반 워크로드를 지원하는 여러 버전의 [Amazon Corretto](https://aws.amazon.com/corretto/)와 일부 OpenJDK 버전을 제공합니다. AL2023으로 마이그레이션하기 위해 [Amazon Corretto](https://aws.amazon.com/corretto/)로 마이그레이션하는 것이 좋습니다.

 Corretto는 Amazon의 장기 지원을 받는 공개 Java 개발 키트(OpenJDK)입니다. Corretto는 Java SE 표준을 충족하고 Linux, Windows및에서 사용할 수 있도록 Java 기술 호환성 키트(TCK)를 사용하여 인증을 받았습니다macOS.

 [Amazon Corretto](https://aws.amazon.com/corretto/) 패키지는 각 Corretto 1.8.0, Corretto 11 및 Corretto 17에 사용할 수 있습니다.

 AL2의 각 Corretto 버전은 Corretto 버전과 동일한 기간 동안 또는 AL2 수명 종료 중 먼저 발생하는 시점까지 지원됩니다. 자세한 내용은 [Amazon Corretto FAQs](https://aws.amazon.com/corretto/faqs).

# Perl AL2의
<a name="perl"></a>

AL2는 [https://www.perl.org/](https://www.perl.org/) 프로그래밍 언어 버전 5.16을 제공합니다.

## Perl AL2의 모듈
<a name="perl-modules"></a>

다양한 Perl 모듈이 AL2에서 RPMs으로 패키징됩니다. RPMs으로 사용할 수 있는 Perl 모듈이 많지만 Amazon Linux는 가능한 모든 Perl 모듈을 패키징하려고 하지 않습니다. RPMs으로 패키징된 모듈은 다른 운영 체제 RPM 패키지에 의존할 수 있으므로 Amazon Linux는 순수 기능 업데이트보다 보안 패치를 우선시합니다.

AL2에는 Perl 개발자가 Perl 모듈에 대해 관용 패키지 관리자를 사용할 수 `CPAN` 있도록 도 포함되어 있습니다.

# PHP AL2의
<a name="php"></a>

 AL2는 현재의 일부로 [https://www.php.net/](https://www.php.net/) 프로그래밍 언어의 완전 지원 버전 2개를 제공합니다[AL2 Extras 라이브러리](al2-extras.md). 각 PHP 버전은의 더 이상 사용되지 않는 날짜에 나열된 PHP 업스트림과 동일한 기간 동안 지원됩니다[Amazon Linux 2 추가 항목 목록](al2-extras-list.md).

AL2 Extras를 사용하여 인스턴스에 애플리케이션 및 소프트웨어 업데이트를 설치하는 방법에 대한 자세한 내용은 섹션을 참조하세요[AL2 Extras 라이브러리](al2-extras.md).

 AL2023으로의 마이그레이션을 지원하기 위해 PHP AL2 및 AL2023에서 8.1 및 8.2를 모두 사용할 수 있습니다.

**참고**  
 AL2의 `amazon-linux-extras`에는 PHP 7.1, 7.2, 7.3 및 7.4가 포함되어 있습니다. 이러한 모든 추가 항목은 EOL이며 추가 보안 업데이트를 받을 수 없습니다.  
 AL2에서 각 버전의 PHP가 더 이상 사용되지 않는 시기를 알아보려면 섹션을 참조하세요[Amazon Linux 2 추가 항목 목록](al2-extras-list.md).

## 이전 PHP 8.x 버전에서 마이그레이션
<a name="php-migration"></a>

 업스트림 PHP 커뮤니티는 [8.1에서 PHP 8.2로 전환하기 위한 포괄적인 마이그레이션 설명서를 마련PHP했습니다](https://www.php.net/migration82). [8.0에서 PHP 8.1로 마이그레이션하기](https://www.php.net/migration81) 위한 설명서도 있습니다.

 AL2에는 PHP AL2023으로의 효율적인 업그레이드 경로를 `amazon-linux-extras` 지원하는 8.0, 8.1 및 8.2가 포함되어 있습니다. AL2023 AL2에서 각 버전의 PHP가 더 이상 사용되지 않는 시기를 알아보려면 섹션을 참조하세요[Amazon Linux 2 추가 항목 목록](al2-extras-list.md).

## PHP 7.x 버전에서 마이그레이션
<a name="php-migration-7x"></a>

 업스트림 PHP 커뮤니티에서 [PHP 8.0에서 PHP 7.4로 이전하기 위한 마이그레이션 종합 설명서](https://www.php.net/migration80)를 만들었습니다. 8.1 및 PHP 8.PHP2로 마이그레이션하는 방법에 대한 이전 섹션에서 참조한 설명서와 함께 PHP 기반 애플리케이션을 최신 로 마이그레이션하는 데 필요한 모든 단계가 있습니다PHP.

[https://www.php.net/](https://www.php.net/) 프로젝트는 지원되지 [않는 브랜치](https://www.php.net/eol.php) 목록과 함께 지원되는 [버전의](https://www.php.net/supported-versions.php) 목록과 일정을 유지합니다.

**참고**  
 AL2023이 릴리스되었을 때의 모든 7.x 및 5.x 버전[https://www.php.net/](https://www.php.net/)은 [https://www.php.net/](https://www.php.net/) 커뮤니티에서 지원되지 않았으며 AL2023의 옵션으로 포함되지 않았습니다.

# Python AL2의
<a name="python"></a>

 AL2는 Python AL2 코어 패키지에 대한 장기 지원 약정의 일환으로 2026년 6월까지 AL2.7에 대한 지원 및 보안 패치를 제공합니다. 이 지원은 2020년 Python 1월 2.7 EOL의 업스트림 Python 커뮤니티 선언을 넘어 확장됩니다.

**참고**  
 AL2023은 Python 2.7을 완전히 제거했습니다. 이제가 필요한 모든 구성 요소가 Python 3과 함께 작동하도록 작성Python되었습니다.

 AL2는 Python 2.7에 대한 엄격한 종속성이 있는 `yum` 패키지 관리자를 사용합니다. AL2023에서는 `dnf` 패키지 관리자가 Python 3으로 마이그레이션되었으며 더 이상 Python 2.7이 필요하지 않습니다. AL2023이 Python 3으로 완전히 이동했습니다. Python 3으로의 마이그레이션을 완료하는 것이 좋습니다.

# AL2의 Rust
<a name="rust"></a>

 AL2와 함께 제공되는 도구 체인을 사용하여 AL2[https://www.rust-lang.org/](https://www.rust-lang.org/)에 작성된 자체 코드를 빌드할 수 있습니다.

 Rust 도구 체인은 AL2 수명 주기 동안 업데이트됩니다. 이는 배송하는 도구 체인의 CVE에 대한 응답이거나 다른 패키지의 CVE 업데이트에 대한 사전 조건일 수 있습니다.

 [https://www.rust-lang.org/](https://www.rust-lang.org/)는 비교적 빠르게 움직이는 언어로, 약 6주 주기로 새 릴리스가 출시됩니다. 새 릴리스에는 새 언어 또는 표준 라이브러리 기능이 추가될 수 있습니다. AL2는 수명 주기 동안 새로운 버전의 Rust 도구 체인을 통합하지만 업스트림 Rust 릴리스에서는 잠기지 않습니다. 따라서 Rust 언어의 최첨단 기능을 사용하여 Rust 코드를 빌드하려는 경우 AL2에 제공된 Rust 도구 체인을 사용하는 것이 적합하지 않을 수 있습니다.

 AL2 수명 동안 이전 패키지 버전은 리포지토리에서 제거되지 않습니다. 이전 Rust 도구 체인이 필요한 경우 최신  Rust 도구 체인의 버그 및 보안 수정을 포기하고 RPM에 사용할 수 있는 것과 동일한 프로세스를 사용하여 리포지토리에서 이전 버전을 설치하도록 선택할 수 있습니다.

 AL2에서 자체 Rust 코드를 빌드하려면이 Rust 도구 체인이 AL2 수명 주기 동안 앞으로 나아갈 수 있다는 지식과 함께 AL2에 포함된 도구 체인을 사용합니다.