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.

 

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.

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

Why you should retire your Microsoft Azure Consumption Commitment (MACC) with Ubuntu Pro

When your organization first signed its Microsoft Azure Consumption Commitment (MACC), it was a strategic…

1 day ago

Java 25 now available on Google Cloud Serverless

[December 11, 2025] Today Canonical, the publisher of Ubuntu, announced the immediate availability of Java…

2 days ago

How to launch a Deep Learning VM on Google Cloud

Setting up a local Deep Learning environment can be a headache. Between managing CUDA drivers,…

2 days ago

Harnessing the potential of 5G with Kubernetes: a cloud-native telco transformation perspective

Telecommunications networks are undergoing a cloud-native revolution. 5G promises ultra-fast connectivity and real-time services, but…

3 days ago

The rhythm of reliability: inside Canonical’s operational cadence

In software engineering, we often talk about the “iron triangle” of constraints: time, resources, and…

4 days ago