Amazon Linux 2023 (AL2023) is the next generation of Amazon Linux for developing and running cloud applications in high-performance and security enhanced execution environment. This rpm-based Linux distribution is optimized for Amazon EC2.

Amazon Linux 2023 is not available in the Microsoft Store. Therefore, installation of the AL2023 Linux distro for Windows Subsystem for Linux is not straightforward. In this post, we'll see how to install and run AL2023 on WSL2.

Prerequisite:

  • Windows Subsystem for Linux (WSL2)
  • Docker - either in host machine or guest WSL2 Linux distro.

If WSL is not installed, please refer following article

How to Install Windows Subsystem for Linux (WSL2) on Windows 11?
Steps to install Windows Subsystem for Linux (WSL2) on Windows 10 works for Windows 11 too. But Microsoft made it super simple in Windows 11. Just one command that takes minutes to install a Linux distribution (Ubuntu by default). If you are curious about other 3 different options that I

Also, if you don't have docker installed, please refer the below post for detailed installation steps.

Install Docker Engine and Docker Compose on Windows Subsystem for Linux (WSL 2)
If you already have Docker Desktop installed or want to use docker on both Windows and WSL2, then Docker Desktop is better choice. But I personally prefer to install and run the “most-loved Tool” docker inside Windows Subsystem for Linux (WSL 2). This keeps the development environment isolated and…

Export Amazon Linux 2023 as tar

Start the docker service.

abhijit@AwsJunkie:~$ sudo service docker start
 * Starting Docker: docker                      [ OK ]

Pull the latest (Amazon Linux 2023) container image of Amazon Linux from dockerhub.

abhijit@AwsJunkie:~$ sudo docker pull amazonlinux
Using default tag: latest
latest: Pulling from library/amazonlinux
ee5c3b4d09bc: Pull complete
Digest: sha256:1293fb4fa103ea81a8769d7b0aa000072884b0750c0a28563fd9838fea784245
Status: Downloaded newer image for amazonlinux:latest
docker.io/library/amazonlinux:latest

To verify, run the container locally once.

abhijit@AwsJunkie:~$ sudo docker run -it amazonlinux /bin/bash
bash-5.2# date
Fri Apr 14 22:09:27 UTC 2023

Copy the CONTAINER ID (e.g. 62a6ebe6c039) of the amazonlinux IMAGE.

abhijit@AwsJunkie:~$ sudo docker container ls -a | grep amazonlinux
62a6ebe6c039   amazonlinux   "/bin/bash"   4 minutes ago   Exited (127) 29 seconds ago             adoring_tu

Use the CONTAINER ID to export the amazonlinux container's filesystem as a tar file (e.g. al2023.tar).

abhijit@AwsJunkie:~$ sudo docker export 62a6ebe6c039 > /mnt/c/backup/wsl/al2023.tar
Amazon Linux 2023 tar

Import Amazon Linux 2023 tar as new Distro into WSL

Open Windows Command Prompt. And import the exported tar file (e.g. al2023.tar) as new Linux distribution into WSL using wsl --import <Distro> <InstallLocation> <FileName> [Options]

C:\Users\abhijit>wsl --import AmazonLinux2023 C:\installed\env c:\backup\wsl\al2023.tar
Import Amazon Linux 2023 into WSL2

Refer below article for more details on how to take backup and restore Linux Distro on WSL.

How to Backup and Restore Linux Distro on WSL (Windows Subsystem for Linux)?
Nobody can deny the importance of backup & restore process for any environment. Specially, when multi-steps are involved in setup and configuration and we keep modifying the environment with time. Basically, if anything goes wrong for any reason, we don’t want to end up wasting time by setting up th…

Verify

Run wsl -l -v in Windows Command Prompt to list all the installed WSL Linux distributions. We'll see AmazonLinux2023 as one of the distro.

C:\Users\abhijit>wsl -l -v
  NAME               STATE           VERSION
* Ubuntu-22.04       Running         2
  AmazonLinux2023    Stopped         2

Run  wsl -d AmazonLinux2023 to start Amazon Linux 2023.

C:\Users\abhijit>wsl -d AmazonLinux2023
[root@Laptop abhijit]#

Confirm OS name ( NAME="Amazon Linux"), OS version (VERSION="2023") and System release (system-release-2023.0.20230322-0.amzn2023.noarch).

[root@AwsJunkie abhijit]# cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
SUPPORT_END="2028-03-01"

[root@AwsJunkie abhijit]# rpm -q system-release
system-release-2023.0.20230322-0.amzn2023.noarch

(Optional) Upgrade, Install AWS Tools & Development Tools:

DNF (Dandified YUM) is the package management tool in Amazon Linux 2023 (AL2023). Usage is similar to the predecessor YUM.

Upgrade tolatest release version.

[root@AwsJunkie abhijit]# dnf upgrade --releasever=latest
Amazon Linux 2023 repository                                                         14 MB/s |  12 MB     00:00
Last metadata expiration check: 0:00:02 ago on Fri Apr 14 19:26:23 2023.
Dependencies resolved.
====================================================================================================================
 Package                         Architecture     Version                               Repository             Size
====================================================================================================================
Upgrading:
 amazon-linux-repo-cdn           noarch           2023.0.20230329-0.amzn2023            amazonlinux            18 k
 system-release                  noarch           2023.0.20230329-0.amzn2023            amazonlinux            29 k

Transaction Summary
====================================================================================================================
Upgrade  2 Packages

Total download size: 46 k
Is this ok [y/N]: Y
Downloading Packages:
(1/2): amazon-linux-repo-cdn-2023.0.20230329-0.amzn2023.noarch.rpm                  113 kB/s |  18 kB     00:00
(2/2): system-release-2023.0.20230329-0.amzn2023.noarch.rpm                         114 kB/s |  29 kB     00:00
--------------------------------------------------------------------------------------------------------------------
Total                                                                                83 kB/s |  46 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                            1/1
  Upgrading        : system-release-2023.0.20230329-0.amzn2023.noarch                                           1/4
  Upgrading        : amazon-linux-repo-cdn-2023.0.20230329-0.amzn2023.noarch                                    2/4
  Cleanup          : amazon-linux-repo-cdn-2023.0.20230322-0.amzn2023.noarch                                    3/4
  Cleanup          : system-release-2023.0.20230322-0.amzn2023.noarch                                           4/4
  Running scriptlet: system-release-2023.0.20230322-0.amzn2023.noarch                                           4/4
  Verifying        : amazon-linux-repo-cdn-2023.0.20230329-0.amzn2023.noarch                                    1/4
  Verifying        : amazon-linux-repo-cdn-2023.0.20230322-0.amzn2023.noarch                                    2/4
  Verifying        : system-release-2023.0.20230329-0.amzn2023.noarch                                           3/4
  Verifying        : system-release-2023.0.20230322-0.amzn2023.noarch                                           4/4

Upgraded:
  amazon-linux-repo-cdn-2023.0.20230329-0.amzn2023.noarch      system-release-2023.0.20230329-0.amzn2023.noarch

Complete!

List all package groups.

[root@AwsJunkie abhijit]# dnf group list
Amazon Linux 2023 repository                                                         13 MB/s |  12 MB     00:00
Available Groups:
   AWS Tools
   Development Tools
   buildsys-build

Use dnf group info <group-name> to list all packages belong to a group.

For example,

[root@AwsJunkie abhijit]# dnf group info "Development Tools"
Last metadata expiration check: 0:10:12 ago on Fri Apr 14 19:30:25 2023.
Group: Development Tools
 Description: A basic development environment.
 Mandatory Packages:
   autoconf
   automake
   binutils
   bison
   flex
   gcc
   gcc-c++
   gettext
   libtool
   make
   patch
   pkgconfig
   rpm-build
   rpm-sign
   system-rpm-config
 Default Packages:
   byacc
   cscope
   ctags
   diffstat
   doxygen
   elfutils
   gcc-gfortran
   git
   indent
   intltool
   patchutils
   rcs
   subversion
   swig
   systemtap
 Optional Packages:
   ElectricFence
   ant
   babel
   bzr
   chrpath
   cmake
   cvs
   dejagnu
   expect
   gcc-gnat
   imake
   javapackages-tools
   libstdc++-docs
   mercurial
   mod_dav_svn
   nasm
   perltidy
   python-docs
   python2-rpm
   rpmdevtools
   rpmlint
   systemtap-sdt-devel
   systemtap-server

Use dnf install <package-name> to install a specific package.

[root@AwsJunkie abhijit]# dnf install git
Last metadata expiration check: 0:14:13 ago on Fri Apr 14 19:30:25 2023.
Dependencies resolved.
====================================================================================================================
 Package                        Architecture   Version                                    Repository           Size
====================================================================================================================
Installing:
 git                            x86_64         2.39.2-1.amzn2023.0.1                      amazonlinux          68 k
Installing dependencies:
 cracklib                       x86_64         2.9.6-27.amzn2023.0.2                      amazonlinux          82 k
 git-core                       x86_64         2.39.2-1.amzn2023.0.1                      amazonlinux         4.2 M
:
 perl-NDBM_File                 x86_64         1.15-477.amzn2023.0.3                      amazonlinux          23 k

Transaction Summary
====================================================================================================================
Install  87 Packages

Total download size: 23 M
Installed size: 91 M
Is this ok [y/N]: y
Downloading Packages:
(1/87): perl-Storable-3.21-458.amzn2023.0.2.x86_64.rpm                              647 kB/s |  96 kB     00:00
:
(87/87): perl-Symbol-1.08-477.amzn2023.0.3.noarch.rpm                               364 kB/s |  15 kB     00:00
--------------------------------------------------------------------------------------------------------------------
Total                                                                               9.5 MB/s |  23 MB     00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                            1/1
  Installing       : systemd-libs-252.4-1161.amzn2023.0.3.x86_64                                               1/87
:
  Verifying        : perl-constant-1.33-459.amzn2023.0.2.noarch                                               87/87

Installed:
  cracklib-2.9.6-27.amzn2023.0.2.x86_64                   git-2.39.2-1.amzn2023.0.1.x86_64
:
Complete!

You can use dnf group install <group-name> to install all packages belong to that group.

References