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
Also, if you don't have docker installed, please refer the below post for detailed installation steps.
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
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
Refer below article for more details on how to take backup and restore Linux Distro on WSL.
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.