Skip to content

Commit 3244b5d

Browse files
Merge pull request #3482 from garyjcarroll/add-arm-toolchains-repository-guide
Add Arm Toolchains repository installation guide
2 parents e80950b + 97ec476 commit 3244b5d

1 file changed

Lines changed: 346 additions & 0 deletions

File tree

Lines changed: 346 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,346 @@
1+
---
2+
### Title the install tools article with the name of the tool to be installed
3+
### Include vendor name where appropriate
4+
title: Arm Toolchains Repository
5+
6+
### Optional additional search terms (one per line) to assist in finding the article
7+
additional_search_terms:
8+
- Arm Toolchains
9+
- Arm Toolchain for Linux
10+
- Arm Performance Libraries
11+
- Linux
12+
- HPC
13+
14+
### Estimated completion time in minutes (please use integer multiple of 5)
15+
minutes_to_complete: 15
16+
17+
test_maintenance: false
18+
test_images:
19+
- ubuntu:latest
20+
21+
### Link to official documentation
22+
official_docs: https://developer.arm.com/tools-and-software
23+
description: Configure the Arm Toolchains Repository package archive on supported Linux AArch64 distributions to enable installing Arm Toolchains products using the system package manager.
24+
author: Gary Carroll
25+
26+
### PAGE SETUP
27+
weight: 1 # Defines page ordering. Must be 1 for first (or only) page.
28+
tool_install: true # Set to true to be listed in main selection page, else false
29+
multi_install: false # Set to true if first page of multi-page article, else false
30+
multitool_install_part: false # Set to true if a sub-page of a multi-page article, else false
31+
layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles
32+
---
33+
34+
# Arm Toolchains Repository
35+
36+
The Arm Toolchains Linux repositories provide a native and convenient way to install selected Arm software products on supported Linux hosts using the host operating system package manager.
37+
38+
The repositories are published at [https://developer.arm.com/packages/arm-toolchains/](https://developer.arm.com/packages/arm-toolchains/).
39+
40+
They are used to distribute Linux packages for Arm Toolchains products, including:
41+
42+
- Arm Toolchain for Linux
43+
- Arm Performance Libraries for supported compilers on Linux
44+
45+
Using the Arm Toolchains Linux repositories allows you to install, upgrade, and manage these products using standard Linux package-management tools such as `apt`, `dnf`, `yum`, and `zypper`.
46+
47+
Note: root permissions are required to install system packages.
48+
49+
{{% notice Repository signing key update July 2026 %}}
50+
Arm has recently reviewed and strengthened the repository management and publication processes used for the Arm Toolchains Linux repositories.
51+
52+
As part of the continuing evolution of this release channel, Arm has revoked and replaced the signing key used for the Arm Toolchains Linux repositories.
53+
54+
If you previously configured the Arm Toolchains Linux repositories, install the `arm-toolchains-repository` package version `2-2` or later before installing or upgrading Arm Toolchain for Linux or Arm Performance Libraries.
55+
56+
Existing installed copies of Arm Toolchain for Linux and Arm Performance Libraries continue to work.
57+
{{% /notice %}}
58+
59+
## Before you begin
60+
61+
You need a supported Linux host with `aarch64` architecture.
62+
63+
You also need the package manager for your Linux distribution:
64+
65+
- `apt` for Ubuntu LTS releases from 22.04
66+
- `dnf` or `yum` for RHEL 8 or later and Amazon Linux 2023
67+
- `zypper` for SLES 15 or 16
68+
69+
## What is the Arm Toolchains repository package?
70+
71+
Arm provides an `arm-toolchains-repository` package for each supported Linux distribution.
72+
73+
This package configures the Arm Toolchains Linux package repository on your host system.
74+
75+
The package installs:
76+
77+
- the Arm Toolchains repository definition for your Linux distribution
78+
- the Arm Toolchains repository signing public key
79+
- package manager configuration that associates the repository with the correct signing key
80+
81+
Install this repository package before you install Arm Toolchain for Linux or Arm Performance Libraries.
82+
83+
## Why the signing key matters
84+
85+
Linux package managers use signing keys to verify that repository metadata and packages come from the expected publisher.
86+
87+
For the Arm Toolchains Linux repositories, the signing key is part of the trust model for package installation and upgrades. If your package manager does not have the current Arm Toolchains repository signing key installed, it might refuse to refresh repository metadata or install packages from the repository.
88+
89+
The previous Arm Toolchains repository signing key was replaced in July 2026.
90+
91+
The previous key fingerprint was:
92+
93+
```output
94+
EE37 7ACD D5AD 4AB6 BD79 9B8A B83D 741E 7A05 AF82
95+
```
96+
97+
The current key fingerprint is:
98+
99+
```output
100+
A406 5BCE 9386 DD1E 62FD E03B 8144 CA16 11A0 BD71
101+
```
102+
103+
You can display the fingerprint from a downloaded key file with:
104+
105+
```bash
106+
gpg --show-keys --fingerprint arm-toolchains.gpg
107+
```
108+
109+
The output should show the current fingerprint:
110+
111+
```output
112+
A406 5BCE 9386 DD1E 62FD E03B 8144 CA16 11A0 BD71
113+
```
114+
115+
## Expected package manager errors
116+
117+
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.
118+
119+
Ubuntu hosts may experience errors running the `apt update` command, for example:
120+
121+
```output
122+
Err:1 https://developer.arm.com/packages/arm-toolchains/ubuntu noble InRelease
123+
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <key-id>
124+
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: <error>
125+
W: Some index files failed to download. They have been ignored, or old ones used instead.
126+
```
127+
128+
RPM based hosts may download the new signing key but refuse to use it:
129+
130+
```output
131+
The GPG keys listed for the "Arm Toolchains" repository are already installed but they are not correct for this package.
132+
Check that the correct key URLs are configured for this repository..
133+
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-arm-toolchains
134+
Error: GPG check FAILED
135+
```
136+
137+
These errors are expected on systems that have not yet installed the updated repository package or accepted the new signing key.
138+
139+
Install the `arm-toolchains-repository` package version `2-2` or later for your Linux distribution, then refresh package metadata to resolve such errors.
140+
141+
## Install the repository package
142+
143+
Install `arm-toolchains-repository` version `2-2` or later for your Linux distribution.
144+
145+
The examples below install the repository package directly from [https://developer.arm.com/packages/arm-toolchains/](https://developer.arm.com/packages/arm-toolchains/). This allows you to update the repository configuration even if your package manager cannot currently refresh the Arm Toolchains repository metadata.
146+
147+
{{< tabpane code=true >}}
148+
{{< tab header="Ubuntu 24.04" language="bash" >}}
149+
curl -O https://developer.arm.com/packages/arm-toolchains/ubuntu/pool/arm-toolchains-repository_2-2~noble_all.deb
150+
151+
sudo dpkg -i arm-toolchains-repository_2-2~noble_all.deb
152+
sudo apt update
153+
{{< /tab >}}
154+
{{< tab header="Ubuntu 22.04" language="bash" >}}
155+
curl -O https://developer.arm.com/packages/arm-toolchains/ubuntu/pool/arm-toolchains-repository_2-2~jammy_all.deb
156+
157+
sudo dpkg -i arm-toolchains-repository_2-2~jammy_all.deb
158+
sudo apt update
159+
{{< /tab >}}
160+
{{< tab header="RHEL 10" language="bash" >}}
161+
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el10/aarch64/arm-toolchains-repository-2-2.el10.noarch.rpm
162+
163+
sudo dnf clean all
164+
sudo dnf makecache
165+
{{< /tab >}}
166+
{{< tab header="RHEL 9" language="bash" >}}
167+
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el9/aarch64/arm-toolchains-repository-2-2.el9.noarch.rpm
168+
169+
sudo dnf clean all
170+
sudo dnf makecache
171+
{{< /tab >}}
172+
{{< tab header="RHEL 8" language="bash" >}}
173+
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/rhel/el8/aarch64/arm-toolchains-repository-2-2.el8.noarch.rpm
174+
175+
sudo dnf clean all
176+
sudo dnf makecache
177+
{{< /tab >}}
178+
{{< tab header="Amazon Linux 2023" language="bash" >}}
179+
sudo dnf install -y https://developer.arm.com/packages/arm-toolchains/amazonlinux/al2023/aarch64/arm-toolchains-repository-2-2.al2023.noarch.rpm
180+
181+
sudo dnf clean all
182+
sudo dnf makecache
183+
{{< /tab >}}
184+
{{< tab header="SLES 15" language="bash" >}}
185+
sudo zypper install -y https://developer.arm.com/packages/arm-toolchains/sles/sles15/aarch64/arm-toolchains-repository-2-2.sles15.noarch.rpm
186+
187+
sudo zypper clean
188+
sudo zypper refresh
189+
{{< /tab >}}
190+
{{< tab header="SLES 16" language="bash" >}}
191+
sudo zypper install -y https://developer.arm.com/packages/arm-toolchains/sles/sles16/aarch64/arm-toolchains-repository-2-2.sles16.noarch.rpm
192+
193+
sudo zypper clean
194+
sudo zypper refresh
195+
{{< /tab >}}
196+
{{< /tabpane >}}
197+
198+
## Verify the repository package version
199+
200+
After installing the repository package, verify that version `2-2` or later is installed.
201+
202+
{{< tabpane code=true >}}
203+
{{< tab header="Ubuntu" language="bash" >}}
204+
dpkg -l arm-toolchains-repository
205+
{{< /tab >}}
206+
{{< tab header="RPM-based distributions" language="bash" >}}
207+
rpm -q arm-toolchains-repository
208+
{{< /tab >}}
209+
{{< /tabpane >}}
210+
211+
The installed version should be `2-2` or later.
212+
213+
## Install Arm Toolchain for Linux
214+
215+
After installing the repository package, follow the [Arm Toolchain for Linux installation instructions](https://developer.arm.com/documentation/110477/latest/Installation) for your distribution.
216+
217+
The repository package must be installed first because it configures the package manager repository and the signing key used to verify packages.
218+
219+
## Install Arm Performance Libraries
220+
221+
After installing the repository package, follow the [Arm Performance Libraries installation instructions](https://developer.arm.com/documentation/102620/latest/Installation) for your distribution.
222+
223+
The repository package must be installed first because it configures the package manager repository and the signing key used to verify packages.
224+
225+
## Manual recovery
226+
227+
The recommended method is to install `arm-toolchains-repository` version `2-2` or later.
228+
229+
Use manual recovery only if you cannot install the repository package directly.
230+
231+
### Ubuntu manual recovery
232+
233+
Remove previous Arm Toolchains repository key material if present:
234+
235+
```bash
236+
sudo rm -f /usr/share/keyrings/arm-toolchains-archive-keyring.gpg
237+
sudo rm -f /etc/apt/keyrings/arm-toolchains-archive-keyring.gpg
238+
sudo rm -f /etc/apt/trusted.gpg.d/arm-toolchains.gpg
239+
sudo rm -f /etc/apt/trusted.gpg.d/arm-toolchains.asc
240+
```
241+
242+
Install the current Arm Toolchains repository signing key:
243+
244+
```bash
245+
curl -O https://developer.arm.com/packages/arm-toolchains/arm-toolchains.gpg
246+
247+
sudo install -D -m 0644 arm-toolchains.gpg \
248+
/usr/share/keyrings/arm-toolchains-archive-keyring.gpg
249+
```
250+
251+
Check the fingerprint:
252+
253+
```bash
254+
gpg --show-keys --fingerprint /usr/share/keyrings/arm-toolchains-archive-keyring.gpg
255+
```
256+
257+
The output should include:
258+
259+
```output
260+
A406 5BCE 9386 DD1E 62FD E03B 8144 CA16 11A0 BD71
261+
```
262+
263+
Ensure the Arm Toolchains repository entry references the installed keyring using `signed-by`.
264+
265+
Example for Ubuntu 24.04:
266+
267+
```output
268+
deb [signed-by=/usr/share/keyrings/arm-toolchains-archive-keyring.gpg] https://developer.arm.com/packages/arm-toolchains/ubuntu noble main
269+
```
270+
271+
Example for Ubuntu 22.04:
272+
273+
```output
274+
deb [signed-by=/usr/share/keyrings/arm-toolchains-archive-keyring.gpg] https://developer.arm.com/packages/arm-toolchains/ubuntu jammy main
275+
```
276+
277+
Refresh package metadata:
278+
279+
```bash
280+
sudo apt update
281+
```
282+
283+
### RPM-based manual recovery
284+
285+
Remove the previous Arm Toolchains public key if present:
286+
287+
```bash
288+
sudo rpm -e gpg-pubkey-7a05af82* 2>/dev/null || true
289+
```
290+
291+
Install the current Arm Toolchains repository signing key:
292+
293+
```bash
294+
curl -O https://developer.arm.com/packages/arm-toolchains/arm-toolchains.gpg
295+
296+
sudo rpm --import arm-toolchains.gpg
297+
```
298+
299+
Check that the key is installed:
300+
301+
```bash
302+
rpm -qa gpg-pubkey*
303+
```
304+
305+
Refresh package metadata.
306+
307+
For RHEL, Amazon Linux, and compatible RPM-based distributions:
308+
309+
```bash
310+
sudo dnf clean all
311+
sudo dnf makecache
312+
```
313+
314+
For SLES:
315+
316+
```bash
317+
sudo zypper clean
318+
sudo zypper refresh
319+
```
320+
321+
## Previous repository locations
322+
323+
The current Arm Toolchains Linux repositories at [https://developer.arm.com/packages/arm-toolchains/](https://developer.arm.com/packages/arm-toolchains/) replace the earlier repository structure that was based on repositories built using the SUSE Open Build Service.
324+
325+
Earlier repositories were published under the top-level package URL [https://developer.arm.com/packages/](https://developer.arm.com/packages/) and used repository prefixes such as:
326+
327+
```output
328+
ACfL:<distro>
329+
arm-toolchains:<distro>
330+
```
331+
332+
These earlier repositories are deprecated but will continue to work until further notice.
333+
334+
Do not configure new systems to use the deprecated `ACfL:` or `arm-toolchains:` repository paths. Existing users should migrate to the current Arm Toolchains Linux repositories and install the current `arm-toolchains-repository` package.
335+
336+
The deprecated repositories will be removed in a future update.
337+
338+
## Summary
339+
340+
The Arm Toolchains Linux repositories provide a native package manager based installation channel for Arm Toolchain for Linux and Arm Performance Libraries on supported Linux hosts.
341+
342+
To use the repositories, install `arm-toolchains-repository` version `2-2` or later for your Linux distribution. This package configures the repository and installs the current repository signing key.
343+
344+
Use only the current Arm Toolchains Linux repositories at [https://developer.arm.com/packages/arm-toolchains/](https://developer.arm.com/packages/arm-toolchains/).
345+
346+
Do not use the deprecated top-level `ACfL:` or `arm-toolchains:` repository paths for new installations.

0 commit comments

Comments
 (0)