It turned out that ARM decided to make our life easier (sarcasm) by deprecating the use of PPA - their page at launchpad now has an anouncement: "... all new binary and source packages will not be released on Launchpad henceforth ...".

So, to make use of their latest arm-none-eabi-gdb you have to install gcc-arm-embedded manually.

Remove arm-none-eabi-gcc from your system:

sudo apt remove gcc-arm-none-eabi

Download latest version (Linux x86_64 Tarball) from their website, check its MD5. Unpack it into some directory. I used /usr/share/ :

sudo tar xjf gcc-arm-none-eabi-YOUR-VERSION.bz2 -C /usr/share/

Create links so that binaries are accessible system-wide:

sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc 
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-g++ /usr/bin/arm-none-eabi-g++
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-gdb /usr/bin/arm-none-eabi-gdb
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-size /usr/bin/arm-none-eabi-size
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy

Install dependencies. ARM's "full installation instructions" listed in readme.txt won't tell you what dependencies are - you have to figure it out by trial and error. In my system I had to manually create symbolic links to force it to work:

sudo apt install libncurses-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5

Check if it works:

arm-none-eabi-gcc --version
arm-none-eabi-g++ --version
arm-none-eabi-gdb --version
arm-none-eabi-size --version
Answer from Aleksander Khoroshko on askubuntu.com
Top answer
1 of 5
49

It turned out that ARM decided to make our life easier (sarcasm) by deprecating the use of PPA - their page at launchpad now has an anouncement: "... all new binary and source packages will not be released on Launchpad henceforth ...".

So, to make use of their latest arm-none-eabi-gdb you have to install gcc-arm-embedded manually.

Remove arm-none-eabi-gcc from your system:

sudo apt remove gcc-arm-none-eabi

Download latest version (Linux x86_64 Tarball) from their website, check its MD5. Unpack it into some directory. I used /usr/share/ :

sudo tar xjf gcc-arm-none-eabi-YOUR-VERSION.bz2 -C /usr/share/

Create links so that binaries are accessible system-wide:

sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc 
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-g++ /usr/bin/arm-none-eabi-g++
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-gdb /usr/bin/arm-none-eabi-gdb
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-size /usr/bin/arm-none-eabi-size
sudo ln -s /usr/share/gcc-arm-none-eabi-YOUR-VERSION/bin/arm-none-eabi-objcopy /usr/bin/arm-none-eabi-objcopy

Install dependencies. ARM's "full installation instructions" listed in readme.txt won't tell you what dependencies are - you have to figure it out by trial and error. In my system I had to manually create symbolic links to force it to work:

sudo apt install libncurses-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5

Check if it works:

arm-none-eabi-gcc --version
arm-none-eabi-g++ --version
arm-none-eabi-gdb --version
arm-none-eabi-size --version
2 of 5
10

I've wrapped the script here by @kmhallen into a semi-automated debian package builder here: https://gitlab.com/alelec/arm-none-eabi-gcc-deb/-/releases

Installing a package like this means you can skip the tedious manual symlinks to put tools on the path, and just as importantly you can uninstall / upgrade to newer packages (assuming I remember to make more packages)

🌐
Linux Mint Forums
forums.linuxmint.com › board index › main edition support › software & applications
Getting to work ARM-compiler arm-none-eabi with Linux 21 Vanessa - Linux Mint Forums
November 28, 2022 - sudo ln -s /usr/share/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc ... 3)Install dependency sudo apt install libncurses-dev 4) Create links 5) From here on: I can call arm-none-eabi-gcc and g++ version without an error.
🌐
Ubuntu
packages.ubuntu.com › bionic › devel › gcc-arm-none-eabi
Details of package gcc-arm-none-eabi in bionic
two or more packages specified (gcc-arm-none-eabi bionic) Content Copyright © 2025 Canonical Ltd.; See license terms. Ubuntu is a trademark of Canonical Ltd. Learn more about this site.
Find elsewhere
🌐
Arm Developer
developer.arm.com › downloads › - › gnu-rm
Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
See the downloaded package readme.txt file for full installation instructions. For the Linux, Mac, and source packages, readme.txt is in the share/doc/gcc-arm-none-eabi folder.
🌐
Quora
quora.com › How-do-you-install-arm-none-Eabi-GDB-on-Ubuntu-20-04-LTS-Focal-Fossa-apt-gcc-arm-Ubuntu
How to install arm none Eabi GDB on Ubuntu 20.04 LTS (Focal Fossa, apt, gcc, arm, Ubuntu) - Quora
Answer: Hi, typically you can download the ARM GNU Tool chain directly from ARM. This tool chain can be found here, be sure to select the correct download for your personal computers’ architecture. Once downloaded, you should be able to simply extract the contents of the download archive and plac...
🌐
Ubuntu
packages.ubuntu.com › bionic › gcc-arm-none-eabi
Ubuntu – Error
two or more packages specified (gcc-arm-none-eabi bionic) Content Copyright © 2025 Canonical Ltd.; See license terms. Ubuntu is a trademark of Canonical Ltd. Learn more about this site.
🌐
Lindevs
lindevs.com › install-arm-gnu-toolchain-on-ubuntu
Install Arm GNU Toolchain on Ubuntu 22.04 | Lindevs
November 14, 2023 - You are doing a bit more than only extend the PATH variable. You are echoing the command to extend the PATH variable onto stdin then capture it via tee and put it (append it) into a file called gcc-arm-none-eabi.sh which resides in the path /etc/profile.d/.
🌐
Ubuntu
old-releases.ubuntu.com › ubuntu › pool › universe › g › gcc-arm-none-eabi
Index of /ubuntu/pool/universe/g/gcc-arm-none-eabi
Index of /ubuntu/pool/universe/g/gcc-arm-none-eabi · Apache/2.4.52 (Ubuntu) Server at old-releases.ubuntu.com Port 80
🌐
Ubuntu
packages.ubuntu.com › focal › devel › gcc-arm-none-eabi
Details of package gcc-arm-none-eabi in focal
two or more packages specified (gcc-arm-none-eabi focal) Content Copyright © 2025 Canonical Ltd.; See license terms. Ubuntu is a trademark of Canonical Ltd. Learn more about this site.
🌐
Particle
community.particle.io › troubleshooting
[SOLVED] Arm-none-eabi-gcc not found when building firmware on Linux - Troubleshooting - Particle
August 23, 2016 - Hello everyone! I have been working on po-util recently, and I am encountering a very frustrating bug on Ubuntu / Mint. Arm-none-eabi-gcc is not being found, and I am having trouble adding it to $PATH. Here is the output when trying to build firmware on my VPS (Ubuntu 16.04.1): nrobinson@u...