Categories: Ubuntu

How to Install a Specific Version of LLVM on Ubuntu or Debian Linux

In this article, we will see how to install a specific version of llvm on Ubuntu or Debian Linux. LLVM (Low-Level Virtual Machine) is a collection of modular and reusable compiler and toolchain technologies used for developing front-end and back-end compilers. It was design with the goal of providing a modern, SSA-based compilation strategy capable of supporting both static and dynamic compilation of arbitrary programming languages. More on official website.

LLVM is required as a pre-requisites by many application and software to work properly on Ubuntu or Debian based linux systems. Different applications requires different versions of llvm which may not be available immediately through default ubuntu repo. In that case, you have to install a specific version of llvm as required by applications. Here we will see how to install a specific version of llvm in your Ubuntu or Debian based linux systems.

 

Sponsored

How to Install a Specific Version of LLVM on Ubuntu or Debian Linux

Also Read: How to Install vLLM on Linux Using 4 Easy Steps

If you are looking to install some specific version, let’s say version 19 then to install this specific version you have to follow below installation steps.

Step 1: Download Script

You have to first download the script from official download page using wget utility as shown below.

Ubuntu-Server@ubuntu:~$ wget https://apt.llvm.org/llvm.sh
--2025-03-13 03:12:02-- https://apt.llvm.org/llvm.sh
Resolving apt.llvm.org (apt.llvm.org)... 146.75.122.49, 2a04:4e42:8e::561
Connecting to apt.llvm.org (apt.llvm.org)|146.75.122.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5851 (5.7K) [application/octet-stream]
Saving to: ‘llvm.sh’

llvm.sh 100%[========================================================>] 5.71K --.-KB/s in 0s

2025-03-13 03:12:03 (56.0 MB/s) - ‘llvm.sh’ saved [5851/5851]

 

Step 2: Provide execute permission

Then you have to provide execute permission to the downloaded script using chmod +x llvm.sh command to allow it to run as shown below.

Sponsored
Ubuntu-Server@ubuntu:~$ chmod +x llvm.sh

 

Step 3: Install a specific version

If you are looking to install some specific version, let’s say version 19 then all you have to do is to run the llvm.sh script by passing the version number as shown below.

Ubuntu-Server@ubuntu:~$ sudo ./llvm.sh 19
+ CURRENT_LLVM_STABLE=18
+ BASE_URL=http://apt.llvm.org
+ needed_binaries=(lsb_release wget add-apt-repository gpg)
+ missing_binaries=()
+ for binary in "${needed_binaries[@]}"
+ which lsb_release
+ for binary in "${needed_binaries[@]}"
+ which wget
+ for binary in "${needed_binaries[@]}"
+ which add-apt-repository
+ for binary in "${needed_binaries[@]}"
+ which gpg
+ [[ 0 -gt 0 ]]
+ LLVM_VERSION=18
+ ALL=0
++ lsb_release -is
+ DISTRO=Ubuntu
++ lsb_release -sr
+ VERSION=22.04
+ UBUNTU_CODENAME=
+ CODENAME_FROM_ARGUMENTS=
+ source /etc/os-release
++ PRETTY_NAME='Ubuntu 22.04.4 LTS'
++ NAME=Ubuntu
++ VERSION_ID=22.04
++ VERSION='22.04.4 LTS (Jammy Jellyfish)'
++ VERSION_CODENAME=jammy
++ ID=ubuntu
++ ID_LIKE=debian
++ HOME_URL=https://www.ubuntu.com/
++ SUPPORT_URL=https://help.ubuntu.com/
++ BUG_REPORT_URL=https://bugs.launchpad.net/ubuntu/
++ PRIVACY_POLICY_URL=https://www.ubuntu.com/legal/terms-and-policies/privacy-policy
++ UBUNTU_CODENAME=jammy
+ DISTRO=ubuntu
+ case ${DISTRO} in
+ [[ -n jammy ]]
+ CODENAME=jammy
+ [[ -n jammy ]]
+ LINKNAME=-jammy
+ '[' 1 -ge 1 ']'
+ '[' 1 '!=' - ']'
+ '[' 19 '!=' all ']'
+ LLVM_VERSION=19
..........................................

 

Step 4: Check Version

After successful installation, you can check the installed version by using llvm-config-19 --version command as shown below. If you installed a different version, then you can run llvm-config- --version command to check the installed version.

Ubuntu-Server@ubuntu:~$ llvm-config-19 --version
19.1.7

 

Install latest version

Instead of installing a specific version, you can also choose to install latest version by using sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" command as shown below.

Ubuntu-Server@ubuntu:~$ sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
--2025-03-25 02:59:06-- https://apt.llvm.org/llvm.sh
Resolving apt.llvm.org (apt.llvm.org)... 146.75.122.49, 2a04:4e42:8e::561
Connecting to apt.llvm.org (apt.llvm.org)|146.75.122.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7394 (7.2K) [application/octet-stream]
Saving to: ‘STDOUT’

- 100%[===============================================>] 7.22K --.-KB/s in 0s

2025-03-25 02:59:06 (128 MB/s) - written to stdout [7394/7394]

+ CURRENT_LLVM_STABLE=19
+ BASE_URL=http://apt.llvm.org
+ NEW_DEBIAN_DISTROS=("trixie" "unstable")
+ LLVM_VERSION=19
+ ALL=0
++ lsb_release -is
+ DISTRO=Ubuntu
...................................

 

Install from apt or apt-get package manager

If you are fine with current available version of llvm in default ubuntu repo, then you can choose to install it from there by using sudo apt install llvm command as shown below.

Ubuntu-Server@ubuntu:~$ sudo apt install llvm
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
llvm-runtime
The following NEW packages will be installed:
llvm llvm-runtime
0 upgraded, 2 newly installed, 0 to remove and 88 not upgraded.
Need to get 6,962 B of archives.
After this operation, 112 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://in.archive.ubuntu.com/ubuntu jammy/universe amd64 llvm-runtime amd64 1:14.0-55~exp2 [3,204 B]
Get:2 http://in.archive.ubuntu.com/ubuntu jammy/universe amd64 llvm amd64 1:14.0-55~exp2 [3,758 B]
Fetched 6,962 B in 1s (9,951 B/s)
Selecting previously unselected package llvm-runtime:amd64.
(Reading database ... 255032 files and directories currently installed.)
Preparing to unpack .../llvm-runtime_1%3a14.0-55~exp2_amd64.deb ...
Unpacking llvm-runtime:amd64 (1:14.0-55~exp2) ...
Selecting previously unselected package llvm.
Preparing to unpack .../llvm_1%3a14.0-55~exp2_amd64.deb ...
Unpacking llvm (1:14.0-55~exp2) ...
Setting up llvm-runtime:amd64 (1:14.0-55~exp2) ...
Setting up llvm (1:14.0-55~exp2) ...
Processing triggers for man-db (2.10.2-1) ...

At the time of writing this article, current available version is 14 so to check the current installed version, run llvm-config-14 --version command as shown below.

Ubuntu-Server@ubuntu:~$ llvm-config-14 --version
14.0.0
Ubuntu Server Admin

Recent Posts

How to Deploy PowerDNS Cluster on Ubuntu VPS Servers

This article provides a detailed guide for how to deploy PowerDNS cluster on Ubuntu VPS…

6 hours ago

KubeCon Europe 2025: Containers & Connections with Ubuntu

It’s hard to believe that the first KubeCon took place nearly 10 years ago. Back…

2 days ago

The State of Silicon and Devices – Q1 2025 Roundup

Welcome to the first quarterly roundup on the State of Silicon and Devices by Canonical. …

3 days ago

Ubuntu Confidential VMs Now Available on Google Cloud A3 with NVIDIA H100 GPUs

Organizations are racing to harness the transformative power of AI, but sensitive data privacy and…

3 days ago

Ubuntu 25.04 (Plucky Puffin) Beta released

The Ubuntu team is pleased to announce the Beta release of the Ubuntu 25.04 Desktop,…

3 days ago

Open source enterprise application security remains a challenge despite greater patching efforts, IDC research reveals

The latest report from the International Data Corporation (IDC) co-sponsored by Canonical and Google Cloud…

4 days ago