Arm Toolchains repository
About this Install Guide
| Reading time: | 15 min |
| Last updated: | 21 Jul 2026 |
| Reading time: |
| 15 min |
| Last updated: |
| 21 Jul 2026 |
This guide shows you how to install and use the tool with the most common configuration. For advanced options and complete reference information, see the official documentation. Some install guides also include optional next steps to help you explore related workflows or integrations.
The Arm Toolchains repository provides a native and convenient way to install selected Arm software products on supported Linux hosts using the host operating system package manager.
The repository files are used to distribute Linux packages for Arm Toolchains, including:
- Arm Toolchain for Linux
- Arm Performance Libraries for supported compilers on Linux
Using the repository, you can install, upgrade, and manage these packages using standard Linux package-management tools such as apt, dnf, yum, and zypper.
To use the repository, you’ll need to install the repository package. Arm provides an arm-toolchains-repository package for each supported Linux distribution. The package installs:
- the Arm Toolchains repository definition for your Linux distribution
- the Arm Toolchains repository signing public key
- package manager configuration that associates the repository with the correct signing key
You need root or sudo permissions to install system packages.
Before you begin
Confirm you are using an Arm Linux system by running:
uname -m
The output is similar to:
aarch64
Use the native package manager for your distribution:
aptfor Ubuntu LTS releases from 22.04dnforyumfor RHEL 8 or later and Amazon Linux 2023zypperfor SLES 15 or 16
About the signing key
Linux package managers use cryptographic signing keys to verify that repository metadata and packages are authentic and come directly from Arm.
In July 2026, Arm reviewed and strengthened the repository management and publication processes used for the Arm Toolchains repository. As part of the continuing evolution of this release channel, Arm revoked and replaced the signing key.
If you’re setting up a new system after July 2026, installing the arm-toolchains-repository package automatically configures the current repository signing key for you. You don’t need to install the key manually or verify fingerprints.
However, if you’re upgrading a system that configured the Arm Toolchains repository for Linux before July 2026, you need to update the repository configuration to use the new key. Otherwise, your package manager might refuse to refresh repository metadata or install packages.
Existing installed copies of Arm Toolchain for Linux and Arm Performance Libraries continue to work.
Repository signing key fingerprints
For reference or manual verification, the fingerprints of the previous and current Arm Toolchains signing keys are as follows.
Previous fingerprint:
EE37 7ACD D5AD 4AB6 BD79 9B8A B83D 741E 7A05 AF82
Current fingerprint:
A406 5BCE 9386 DD1E 62FD E03B 8144 CA16 11A0 BD71
(Optional) Manually verify the signing key
If you want to manually verify the signing key, ensure the gpg utility (part of GnuPG) is installed on your system, then download the key file and display its fingerprint:
curl -O https://developer.arm.com/packages/arm-toolchains/arm-toolchains.gpg
gpg --show-keys --fingerprint arm-toolchains.gpg
The output should show the current fingerprint:
A406 5BCE 9386 DD1E 62FD E03B 8144 CA16 11A0 BD71
Previous repository locations
The current Arm Toolchains repository at https://developer.arm.com/packages/arm-toolchains/ replaces the earlier repository structure that was based on repositories built using the SUSE Open Build Service.
Earlier repositories were published under the top-level package URL https://developer.arm.com/packages/ and used repository prefixes such as:
ACfL:<distro>
arm-toolchains:<distro>
These earlier repositories are deprecated but will continue to work until further notice.
Don’t configure new systems to use the deprecated ACfL: or arm-toolchains: repository paths. Migrate existing systems to the current Arm Toolchains Linux repositories and install the current arm-toolchains-repository package.
The deprecated repositories will be removed in a future update.
Install the repository package directly
Use one of the following commands to install the repository package directly . This allows you to update the repository configuration even if your package manager can’t currently refresh the Arm Toolchains repository metadata.
curl -O https://developer.arm.com/packages/arm-toolchains/ubuntu/pool/arm-toolchains-repository_2-2~noble_all.deb
sudo dpkg -i arm-toolchains-repository_2-2~noble_all.deb
sudo apt update
curl -O https://developer.arm.com/packages/arm-toolchains/ubuntu/pool/arm-toolchains-repository_2-2~jammy_all.deb
sudo dpkg -i arm-toolchains-repository_2-2~jammy_all.deb
sudo apt update
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el10/aarch64/arm-toolchains-repository-2-2.el10.noarch.rpm
sudo dnf clean all
sudo dnf makecache
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el9/aarch64/arm-toolchains-repository-2-2.el9.noarch.rpm
sudo dnf clean all
sudo dnf makecache
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el8/aarch64/arm-toolchains-repository-2-2.el8.noarch.rpm
sudo dnf clean all
sudo dnf makecache
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/amazonlinux/al2023/aarch64/arm-toolchains-repository-2-2.al2023.noarch.rpm
sudo dnf clean all
sudo dnf makecache
sudo zypper install -y https://developer.arm.com/packages/arm-toolchains/sles/sles15/aarch64/arm-toolchains-repository-2-2.sles15.noarch.rpm
sudo zypper clean
sudo zypper refresh
sudo zypper install -y https://developer.arm.com/packages/arm-toolchains/sles/sles16/aarch64/arm-toolchains-repository-2-2.sles16.noarch.rpm
sudo zypper clean
sudo zypper refresh
Use manual recovery
The recommended method is to install arm-toolchains-repository version 2-2 or later directly.
Use manual recovery only if you cannot install the repository package directly.
Ubuntu manual recovery
Remove previous Arm Linux Toolchains Repository key material if present:
sudo rm -f /usr/share/keyrings/arm-toolchains-archive-keyring.gpg
sudo rm -f /etc/apt/keyrings/arm-toolchains-archive-keyring.gpg
sudo rm -f /etc/apt/trusted.gpg.d/arm-toolchains.gpg
sudo rm -f /etc/apt/trusted.gpg.d/arm-toolchains.asc
Install the current Arm Toolchains repository signing key:
curl -O https://developer.arm.com/packages/arm-toolchains/arm-toolchains.gpg
sudo install -D -m 0644 arm-toolchains.gpg \
/usr/share/keyrings/arm-toolchains-archive-keyring.gpg
Check the fingerprint:
gpg --show-keys --fingerprint /usr/share/keyrings/arm-toolchains-archive-keyring.gpg
The output should include:
A406 5BCE 9386 DD1E 62FD E03B 8144 CA16 11A0 BD71
Find any existing Arm Toolchains repository entries:
grep -Rns "developer.arm.com/packages/arm-toolchains/ubuntu" \
/etc/apt/sources.list /etc/apt/sources.list.d
If the command finds an existing entry, edit that entry so it references /usr/share/keyrings/arm-toolchains-archive-keyring.gpg using signed-by. Don’t create a second entry for the same repository because apt might report conflicting Signed-By values.
If the command doesn’t find an entry, create /etc/apt/sources.list.d/arm-toolchains.list using one of the following commands:
For Ubuntu 24.04, run:
echo "deb [signed-by=/usr/share/keyrings/arm-toolchains-archive-keyring.gpg] https://developer.arm.com/packages/arm-toolchains/ubuntu noble main" | \
sudo tee /etc/apt/sources.list.d/arm-toolchains.list
For Ubuntu 22.04, run:
echo "deb [signed-by=/usr/share/keyrings/arm-toolchains-archive-keyring.gpg] https://developer.arm.com/packages/arm-toolchains/ubuntu jammy main" | \
sudo tee /etc/apt/sources.list.d/arm-toolchains.list
After creating arm-toolchains.list, refresh package metadata:
sudo apt update
RPM-based manual recovery
Remove the previous Arm Toolchains public key if present:
sudo rpm -e gpg-pubkey-7a05af82* || true
Install the current Arm Toolchains repository signing key:
curl -O https://developer.arm.com/packages/arm-toolchains/arm-toolchains.gpg
sudo rpm --import arm-toolchains.gpg
Check that the key is installed:
rpm -qa gpg-pubkey*
Refresh package metadata by running one of the following set of commands.
For RHEL, Amazon Linux, and compatible RPM-based distributions:
sudo dnf clean all
sudo dnf makecache
For SLES:
sudo zypper clean
sudo zypper refresh
Verify the repository package version
After installing the repository package, verify the installation:
dpkg -l arm-toolchains-repository
rpm -q arm-toolchains-repository
The installed version should be 2-2 or later.
Troubleshoot package manager errors
If your system still trusts only the previous Arm Toolchains Repository signing key, package manager operations might fail when you refresh metadata, install packages, or upgrade packages.
Ubuntu hosts might experience errors running the apt update command, for example:
Err:1 https://developer.arm.com/packages/arm-toolchains/ubuntu noble InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <key-id>
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: <error>
W: Some index files failed to download. They have been ignored, or old ones used instead.
RPM-based hosts might download the new signing key but refuse to use it:
The GPG keys listed for the "Arm Toolchains" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository..
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-arm-toolchains
Error: GPG check FAILED
To resolve these errors, install the updated repository package and accept the new signing key.
Next steps
After installing the repository package, you’re ready to install the Arm Toolchain for Linux and the Arm Performance Libraries.
For installation instructions, see the Arm Toolchain for Linux installation instructions and the Arm Performance Libraries installation instructions for your distribution.
Give Feedback
How would you rate this tool quick-install guide?
What is the primary reason for your feedback ?
Thank you! We're grateful for your feedback.
- Have more feedback? Log an issue on GitHub.
- Want to collaborate? Join our Discord server.