LLVM Debian/Ubuntu nightly packages
Download

The goal is to provide Debian and Ubuntu nightly packages ready to be installed with minimal impact on the distribution.
Packages are available for amd64, i386 (Debian only), s390x and arm64 (aka aarch64). This for both the stable, qualification and development branches (currently 18, 19 and 20).

Packages are built using stage2 and extremely similar to the one shipping in Debian & Ubuntu.

The packages provide LLVM + Clang + compiler-rt + polly + LLDB + LLD + libFuzzer + libc++ + libc++abi + openmp + libclc + libunwind + MLIR + BOLT + flang + libc + wasm support

News
For the past year (2022), the work on apt.llvm.org has been partially supported by the OpenSSF, Google, & The Linux Foundation.
This platform serves more than 124tb of packages every month and is used by various actors like the Linux Kernel, TensorFlow, etc and referenced more than 24k times on Github.
The main goal of this support is to improve the security and sustainability of this platform. Previously we were running on an old rack that was no longer supported, and sooner or later would have failed. Now we're running on a cloud-based build platform where the cloud provider is keeping the hardware up-to-date.
We deployed sigstore support, which makes it easier for users to verify that the packages came from us and to detect potential malicious signatures. We even contributed upstream to sigstore, helping future users of sigstore.
In parallel, we continued to ship new releases, enable new features (bolt, etc) etc.

Nov 25th 2024 - Ubuntu Lunar (23.04) disabled (EOL)
Nov 21th 2024 - Ubuntu Mantic (23.10) disabled (EOL)
Oct 19th 2024 - Ubuntu Oracular (24.10) enabled
Oct 19th 2024 - Ubuntu Bionic (18.04) disabled (EOL)
Jul 29th 2024 - Snapshot becomes 20, branch 19 created
Mar 22nd 2024 - Ubuntu Noble (24.04) enabled
Feb 20th 2024 - Add libllvmlibc-18-dev as new package
Jan 25th 2024 - Snapshot becomes 19, branch 18 created
Sep 18th 2023 - Ubuntu Mantic (23.10) enabled
Sep 14th 2022 - Ubuntu Kinetic (22.10) disabled (EOL)
Jul 26th 2023 - Snapshot becomes 18, branch 17 created
Jun 04th 2023 - Debian bookworm (12) enabled as a new distro
Mar 22nd 2023 - Ubuntu Lunar (23.04) enabled
Jan 03rd 2023 - libclang-common-X.Y-dev split into: libclang-rt-X.Y-dev, libpolly-X.Y-dev, libclang-rt-X.Y-dev-wasm32 and libclang-rt-X.Y-dev-wasm64
Jan 03rt 2023 - Support of wasm improved with new packages: libc++-X.Y-dev-wasm32, libc++abi-X.Y-dev-wasm32, libclang-rt-X.Y-dev-wasm32 and libclang-rt-X.Y-dev-wasm64 (recent distros)
Jan 03rd 2023 - flang packages added
Automatic installation script
For convenience there is an automatic installation script available that installs LLVM for you.
To install the latest stable version:
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"

To install a specific version of LLVM:
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh <version number>
To install all apt.llvm.org packages at once:
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh <version number> all
# or
sudo ./llvm.sh all
Debian
Buster (Debian 10 - old-old-stable) - Last update : Mon, 02 Dec 2024 01:01:18 UTC / Revision: 20241201103240+a09df64f406b
deb http://apt.llvm.org/buster/ llvm-toolchain-buster main
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster main
# 18 
deb http://apt.llvm.org/buster/ llvm-toolchain-buster-18 main
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-18 main
# 19 
deb http://apt.llvm.org/buster/ llvm-toolchain-buster-19 main
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-19 main
Bullseye (Debian 11 - old-stable) - Last update : Mon, 02 Dec 2024 02:04:57 UTC / Revision: 20241201103335+a09df64f406b
deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main
deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main
# 18 
deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-18 main
deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-18 main
# 19 
deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-19 main
deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-19 main
Bookworm (Debian 12 - stable) - Last update : Mon, 02 Dec 2024 02:33:39 UTC / Revision: 20241201110438+73f087b3318a
deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm main
deb-src http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm main
# 18 
deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-18 main
deb-src http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-18 main
# 19 
deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-19 main
deb-src http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-19 main
Trixie / sid (unstable) - Last update : Mon, 02 Dec 2024 01:32:04 UTC / Revision: 20241201103029+a09df64f406b
deb http://apt.llvm.org/unstable/ llvm-toolchain main
deb-src http://apt.llvm.org/unstable/ llvm-toolchain main
# 18 
deb http://apt.llvm.org/unstable/ llvm-toolchain-18 main
deb-src http://apt.llvm.org/unstable/ llvm-toolchain-18 main
# 19 
deb http://apt.llvm.org/unstable/ llvm-toolchain-19 main
deb-src http://apt.llvm.org/unstable/ llvm-toolchain-19 main

Ubuntu
Precise, Quantal, Raring, Saucy, Utopic, Artful, Cosmic, Eoan, bionic and Trusty are no longer supported by Ubuntu. Repo remains available but not updated.

Focal (20.04) LTS - Last update : Sun, 01 Dec 2024 22:21:05 UTC / Revision: 20241201083415+9becc4a3c966
deb http://apt.llvm.org/focal/ llvm-toolchain-focal main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal main
# 18
deb http://apt.llvm.org/focal/ llvm-toolchain-focal-18 main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-18 main
# 19
deb http://apt.llvm.org/focal/ llvm-toolchain-focal-19 main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-19 main
Jammy (22.04) LTS - Last update : Sun, 01 Dec 2024 10:39:45 UTC / Revision: 20241201083302+017c75bfacdf
deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main
deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy main
# 18
deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
# 19
deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
Noble (24.04) - Last update : Sun, 01 Dec 2024 22:53:45 UTC / Revision: 20241201083628+9becc4a3c966
deb http://apt.llvm.org/noble/ llvm-toolchain-noble main
deb-src http://apt.llvm.org/noble/ llvm-toolchain-noble main
# 18
deb http://apt.llvm.org/noble/ llvm-toolchain-noble-18 main
deb-src http://apt.llvm.org/noble/ llvm-toolchain-noble-18 main
# 19
deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main
deb-src http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main
Oracular (24.10) - Last update : Mon, 02 Dec 2024 00:42:12 UTC / Revision: 20241201083739+9becc4a3c966
deb http://apt.llvm.org/oracular/ llvm-toolchain-oracular main
deb-src http://apt.llvm.org/oracular/ llvm-toolchain-oracular main
# 18
deb http://apt.llvm.org/oracular/ llvm-toolchain-oracular-18 main
deb-src http://apt.llvm.org/oracular/ llvm-toolchain-oracular-18 main
# 19
deb http://apt.llvm.org/oracular/ llvm-toolchain-oracular-19 main
deb-src http://apt.llvm.org/oracular/ llvm-toolchain-oracular-19 main
Default packages
To make sure always the most recent versions of the packages are installed, we are providing some default packages.
To install all of them (currently version 20):

apt-get install clang-format clang-tidy clang-tools clang clangd libc++-dev libc++1 libc++abi-dev libc++abi1 libclang-dev libclang1 liblldb-dev libllvm-ocaml-dev libomp-dev libomp5 lld lldb llvm-dev llvm-runtime llvm python3-clang

Install
(stable branch)
To retrieve the archive signature:

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
# or
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
# Fingerprint: 6084 F3CF 814B 57C1 CF12 EFD5 15CF 4D18 AF4F 7421


To install just clang, lld and lldb (18 release):

apt-get install clang-18 lldb-18 lld-18


To install all key packages:

# LLVM
apt-get install libllvm-18-ocaml-dev libllvm18 llvm-18 llvm-18-dev llvm-18-doc llvm-18-examples llvm-18-runtime
# Clang and co
apt-get install clang-18 clang-tools-18 clang-18-doc libclang-common-18-dev libclang-18-dev libclang1-18 clang-format-18 python3-clang-18 clangd-18 clang-tidy-18
# compiler-rt
apt-get install libclang-rt-18-dev
# polly
apt-get install libpolly-18-dev
# libfuzzer
apt-get install libfuzzer-18-dev
# lldb
apt-get install lldb-18
# lld (linker)
apt-get install lld-18
# libc++
apt-get install libc++-18-dev libc++abi-18-dev
# OpenMP
apt-get install libomp-18-dev
# libclc
apt-get install libclc-18-dev
# libunwind
apt-get install libunwind-18-dev
# mlir
apt-get install libmlir-18-dev mlir-18-tools
# bolt
apt-get install libbolt-18-dev bolt-18
# flang
apt-get install flang-18
# wasm support
apt-get install libclang-rt-18-dev-wasm32 libclang-rt-18-dev-wasm64 libc++-18-dev-wasm32 libc++abi-18-dev-wasm32 libclang-rt-18-dev-wasm32 libclang-rt-18-dev-wasm64

Install
(qualification branch)
To retrieve the archive signature:

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
# or
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
# Fingerprint: 6084 F3CF 814B 57C1 CF12 EFD5 15CF 4D18 AF4F 7421


To install just clang, lld and lldb (19 release):

apt-get install clang-19 lldb-19 lld-19


To install all key packages:

# LLVM
apt-get install libllvm-19-ocaml-dev libllvm19 llvm-19 llvm-19-dev llvm-19-doc llvm-19-examples llvm-19-runtime
# Clang and co
apt-get install clang-19 clang-tools-19 clang-19-doc libclang-common-19-dev libclang-19-dev libclang1-19 clang-format-19 python3-clang-19 clangd-19 clang-tidy-19
# compiler-rt
apt-get install libclang-rt-19-dev
# polly
apt-get install libpolly-19-dev
# libfuzzer
apt-get install libfuzzer-19-dev
# lldb
apt-get install lldb-19
# lld (linker)
apt-get install lld-19
# libc++
apt-get install libc++-19-dev libc++abi-19-dev
# OpenMP
apt-get install libomp-19-dev
# libclc
apt-get install libclc-19-dev
# libunwind
apt-get install libunwind-19-dev
# mlir
apt-get install libmlir-19-dev mlir-19-tools
# bolt
apt-get install libbolt-19-dev bolt-19
# flang
apt-get install flang-19
# wasm support
apt-get install libclang-rt-19-dev-wasm32 libclang-rt-19-dev-wasm64 libc++-19-dev-wasm32 libc++abi-19-dev-wasm32 libclang-rt-19-dev-wasm32 libclang-rt-19-dev-wasm64
# LLVM libc
apt-get install libllvmlibc-19-dev

Install
(development branch)
To retrieve the archive signature:

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
# or
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
# Fingerprint: 6084 F3CF 814B 57C1 CF12 EFD5 15CF 4D18 AF4F 7421


We also provide meta packages to move from a major version to the other.
For example, to automatically upgrade to the current major:

apt-get install clang lld # clang-20 lld-20 can be added to automatically install the most recent version of the package.


To install just clang, lld and lldb (20 release):

apt-get install clang-20 lldb-20 lld-20


To install all key packages:

# LLVM
apt-get install libllvm-20-ocaml-dev libllvm20 llvm-20 llvm-20-dev llvm-20-doc llvm-20-examples llvm-20-runtime
# Clang and co
apt-get install clang-20 clang-tools-20 clang-20-doc libclang-common-20-dev libclang-20-dev libclang1-20 clang-format-20 python3-clang-20 clangd-20 clang-tidy-20
# compiler-rt
apt-get install libclang-rt-20-dev
# polly
apt-get install libpolly-20-dev
# libfuzzer
apt-get install libfuzzer-20-dev
# lldb
apt-get install lldb-20
# lld (linker)
apt-get install lld-20
# libc++
apt-get install libc++-20-dev libc++abi-20-dev
# OpenMP
apt-get install libomp-20-dev
# libclc
apt-get install libclc-20-dev
# libunwind
apt-get install libunwind-20-dev
# mlir
apt-get install libmlir-20-dev mlir-20-tools
# bolt
apt-get install libbolt-20-dev bolt-20
# flang
apt-get install flang-20
# wasm support
apt-get install libclang-rt-20-dev-wasm32 libclang-rt-20-dev-wasm64 libc++-20-dev-wasm32 libc++abi-20-dev-wasm32 libclang-rt-20-dev-wasm32 libclang-rt-20-dev-wasm64
# LLVM libc
apt-get install libllvmlibc-20-dev

Verification using sigstore
Source, Debian tarballs and dsc files can be verified using sigstore/rekor.
This can be done with "rekor verify":

file="llvm-toolchain-10_10.0.1~%2b%2b20210327072807%2bef32c611aa21-1~exp1~20210327183412.212.dsc"
url="https://apt.llvm.org/unstable/pool/main/l/llvm-toolchain-10/$file"
sig_file="$url.asc"
wget --quiet https://apt.llvm.org/sigstore.public.key
./rekor verify --rekor_server https://rekor.sigstore.dev --signature $sig_file --public-key sigstore.public.key --artifact $url
echo $?


Or with "rekor search":

file="llvm-toolchain-10_10.0.1~++20210327072807+ef32c611aa21.orig.tar.xz"
url="https://apt.llvm.org/unstable/pool/main/l/llvm-toolchain-10/$file"
wget --quiet $url
sha=$(sha256sum $file|awk '{print $1}')
./rekor search --sha sha256:$sha --rekor_server https://rekor.sigstore.dev

Technical aspects
Packages are rebuilt against the trunk of the various LLVM projects.
They are rebuild through a Jenkins instance:
https://llvm-jenkins.debian.net

Bugs

Bugs should be reported on the LLVM bug tracker (label: packaging).

Workflow

Twice a day, each jenkins job will checkout the debian/ directory necessary to build the packages. The repository is available on the Debian hosting infrastructure: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/.
Sources of this page, llvm.sh and others scripts are available on github:
https://github.com/opencollab/llvm-jenkins.debian.net/
In the llvm-toolchain-*-source, the following tasks will be performed: Then, the job llvm-toolchain-X-binary will: Note that a few patches are applied over the LLVM tarballs (and should be merged upstream at some point).
Extra
With the Jenkins instance, several reports are produced:
Building the latest nightly snapshot
Building LLVM packages from source is documented in a dedicated page.

Contact: Sylvestre Ledru
Hosting by LLVM Foundation / CDN by Fastly