Hi,
I installed the recent ARM GCC toolchain in a linux machine (x86_64) in the following way.
1. downloaded the ARM GCC toolchain from here. (gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2)
2. created a folder /toolchain in the home folder and extracted it in there.
3. created symlinks from the important programs in the toolchain to the /usr/local/bin directory (ln -s ~/toolchain/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-gcc /usr/local/bin/arm-none-eabi-gcc). This ensures that when make or other commands try to run they will find the programs (/usr/local/bin is in the search path of most distributions). Did this for arm-none-eabi-g++, ar, gcc, gdb, ld, nm, objcopy, objdump, size.
After that if you type anywere arm-none-eabi-gcc -v you should get at the end of the screen
gcc version 9.3.1 20200408 (release) (GNU Arm Embedded Toolchain 9-2020-q2-update) (...or something like that)...
That's it, you've set up the toolchain!
4. If you have a demo board, download the SDK for the board, selecting operating system linux and toolchain arm-gcc
5. extract that, to run the demos you need to go into the armgcc directory inside the demo you want to run and type ./build_all.sh.
It uses CMAKE (which should be installed in you system, this is probably the only requirement, maybe gdb also needs an old ncurses library, can't remember). You will need to set the export path to the location of the toolchain, but the script will complain about it (build_all.sh)
Good luck, hope it helps (I am also new to this, but I can compile the demos and run them... just without semihosting)...
JCS