Apps & Utilities for Ubuntu 24.04 LTS.

Brian KingBrian King
16 min read

TL;DR.

This post provides a guide to setting up a personalized Ubuntu 24.04 LTS system with essential applications and utilities. It covers software installation for productivity, development, and media tasks, including package managers, partition tools, and specialized applications like VS Code and DaVinci Resolve Studio. This guide emphasizes the importance of keeping my system updated while exploring new tools that optimize workflows, supports daily tasks, and helps to achieve long-term goals.

Attributions:

Various ↗.


An Introduction.

Setting up a practical Ubuntu system requires a collection of apps and utilities that meet my needs. The applications and services I list below are used to adapt the Ubuntu 24.04 LTS distribution to my requirements.

The purpose of this post is to identify some apps and utilities that I find useful.


The Big Picture.

Software that is installed on my PC defines what I want to achieve with my computer. I run a dual-boot PC that allows me to boot into Ubuntu or Windows.

Ubuntu is my daily driver where I spend my time writing these blog posts, and practising my SysOps skills. It is also where I will develop my skills as a software developer and AI generalist.

I also run Windows-only programs like the Reason DAW (digital audio workstation) and the Anadigm Designer 2 computer-aided design tool.

A PC is a generic tool where the installed software defines what the user is capable of achieving.


Prerequisites.

  • A Debian-based Linux distro (I use Ubuntu).

Updating the System.

APT (advanced package tool) handles the installation and removal of software on Debian and Debian-based Linux distributions. The following commands are used to keep my Ubuntu system (a Debian-based Linux distro) up-to-date.

  • From the terminal, I update my system:
sudo apt clean && \
sudo apt update && \
sudo apt dist-upgrade -y && \
sudo apt --fix-broken install && \
sudo apt autoclean && \
sudo apt autoremove -y
  • I go to Settings > System > Software Updates to update my system.

Activating Ubuntu Pro.

Ubuntu Pro is a subscription service that extends the Long Term Support (LTS) versions of Ubuntu from 5 years to 10 years (and soon to be 12 years).

  • In the Apps Drawer, I click on the blue, Additional Drivers icon to start the utility.

  • In the Additional Drivers window, I click on the Ubuntu Pro tab.

  • I click on the Enable Ubuntu Pro button.

  • I can create an account, or login to an existing Ubuntu One account.

  • The Enable Ubuntu Pro window generates a token.

  • I take the token to https://ubuntu.com/pro/attach.

  • It takes a moment to successfully apply the subscription.

NOTE: Canonical provides up to five (5) FREE tokens.


My Terminal Settings.

A terminal is a text window where system commands are issued.

  • I go to Preferences > Unnamed > Text tab,

  • I set the Initial terminal size to 72 columns and 21 rows,

  • I set the Custom font to Monospace at 22pt,

  • I set the Allow blinking text to Never, and

  • I set the Cursor blinking to Disabled.

NOTE: These settings make it easier to see the commands I use.


Connecting to the QNAP NAS.

QNAP is a company, and brand of NAS (network attacked storage) devices.

  • I use a utility called Qfinder Pro that helps connect my PC to my NAS.

  • Once access to my NAS is established, I edit the following file so the default system directories point to the equivalent NAS directories:

sudo nano $HOME/.config/user-dirs.dirs

NOTE: The details of this process is beyond the scope of this post.


Installing GNOME Tweaks.

GNOME Tweaks is a system utility for the GNOME desktop environment GUI.

  • From the terminal, I install GNOME Tweaks:
sudo apt install -y gnome-tweaks
  • I run GNOME Tweaks:
gnome-tweaks
  • I right-click the icon in the Dock and select “Pin to Dash” from the popup menu.

Installing the Package Managers.

Package managers are used to distribute apps and utilities.

NOTE: A developer might also package their app as an AppImage.

Installing the Snap Package Manager.

  • From the terminal, I use APT to install the Snap daemon:
sudo apt install -y snapd
  • I use Snap to install the Snap package manager core:
sudo snap install core

Installing the Flatpak Package Manager.

  • From the terminal, I refresh the terminal:
. ~/.bashrc
  • I use the APT to install the Flatpak package manager:
sudo apt install -y flatpak

Installing the Partition Managers.

Partition managers are system utilities for HDDs and SSDs.

Installing GNOME Disks.

GNOME Disks is the default, graphical, partition management tool on all the GNOME-based desktop environments. The following describes how to install the GNOME Disks utility, if required.

  • From the terminal, I install GNOME Disks utility (if required):
sudo apt -y install gnome-disk-utility

Installing GParted.

GParted, or GNOME Partition Editor, is an alternative to GNOME Disks. It is a free, graphical, partition management tool. The following describes how to install the GParted utility.

  • From the terminal, I install the GParted utility:
sudo apt -y install gparted

GParted can also be installed onto a USB thumb drive.

Installing exfatprogs.

exfatprogs allows partition management tools, like GNOME Disks and GParted, to use the exFAT file system when formatting partitions.

NOTE: exFAT is a proprietary file system from Microsoft, was released in 2006, and is the successor to FAT32.

  • From the terminal, I install the exfatprogs library:
sudo apt -y install exfatprogs

Installing UNZIP.

UNZIP is a utility that is used to unpack compressed packages.

  • From the terminal, I install UNZIP:
sudo apt install unzip

Installing Curl.

curl is a command-line utility for transferring data to, or from, a remote server.

  • From the terminal, I install Curl:
sudo apt install -y apt-transport-https curl

Installing Wget.

Wget is a command-line utility for retrieving files using the HTTP or FTP protocols.

  • From the terminal, I install Wget:
sudo apt install wget

Installing NodeJS.

NodeJS is a server-side runtime that uses the V8 JavaScript engine.

  • From the terminal, I install NodeJS:
sudo apt install -y nodejs
  • I verify the NodeJS installation:
node -v

Installing the NodeJS Package Managers.

Package managers are used to bundle code for distribution.

Installing NPM.

  • I install NPM:
sudo apt install -y npm
  • I verify the NPM installation:
npm -v

Installing NVM.

  • I download, and run, the NVM installation script:
wget -q -O- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
  • I refresh my terminal:
. ~/.bashrc
  • I verify the NVM installation:
nvm -v

Installing PNPM.

  • I install PNPM:
sudo npm install -g pnpm
  • I verify the PNPM installation:
pnpm -v

Installing NPX.

NOTE: NPX is now part of the NPM CLI.


Installing Git.

Git is a version control system.

  • From the terminal, I install Git:
sudo apt install -y git-all
  • I verify the installation:
git -v

Installing Miniconda.


Installing LXD and Using LXCs.


Installing Ollama.

Ollama is a local, large language model manger.

  • From the terminal, I install Ollama:
curl https://ollama.ai/install.sh | sh
  • I list the LLMs downloaded by Ollama:
ollama list
  • If the above command fails, I run Ollama as a background service:
ollama serve &
  • The following error will display if Ollama is already running as a background service:
Error: listen tcp 127.0.0.1:11434: bind: address already in use

Updating Ollama.

  • I update Ollama:
curl https://ollama.ai/install.sh | sh

Pulling Models from Ollama.

  • I pull the following models from Ollama:
ollama pull nomic-embed-text &&
ollama pull codellama:13b &&
ollama pull qwen2.5-coder:14b &&
ollama pull qwen2.5:14b &&
ollama pull granite3.2-vision:2b &&
ollama pull granite3.2:8b &&
ollama pull llama3.1:8b &&
ollama pull llama3.2-vision:11b &&
ollama pull llama3.2:3b &&
ollama pull phi4:14b &&
ollama pull gemma3:12b &&
ollama pull deepseek-coder-v2:16b &&
ollama pull deepseek-r1:14b

Uninstalling Ollama.

  • I stop the Ollama service:
sudo systemctl stop ollama
  • I disable the Ollama service:
sudo systemctl disable ollama
  • I remove the Ollama service:
sudo rm /etc/systemd/system/ollama.service
  • I remove the Ollama binary from my bin directory:
sudo rm $(which ollama)
  • I remove the models downloaded by Ollama:
sudo rm -r /usr/share/ollama
  • I delete the Ollama service user:
sudo userdel ollama
  • I delete the Ollama service group:
sudo groupdel ollama

Installing Pinokio.

Pinokio is a browser that runs applications.

  • I visit the download page:
https://github.com/pinokiocomputer/pinokio/releases/tag/3.6.23

NOTE: In this example, I am referencing Pinokio v3.6.23.

  • At the bottom of the page, I download the Debian package for AMD64 processors.

  • From the terminal, I install Pinokio:

sudo apt install -y ~/Downloads/Pinokio*
  • I run Pinokio from the Apps Drawer.

Installing Docker.

Docker is a container manager for app development and distribution.

Attribution:

https://linuxiac.com/how-to-install-docker-on-ubuntu-24-04-lts/ ↗.

  • From the terminal, I add HTTPS and the Curl utility:
sudo apt install -y apt-transport-https curl
  • I import the Docker GPG repository key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • I add the official Docker repository to my system:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • I refresh my local repo list:
sudo apt update && sudo apt upgrade
  • I install Docker:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • I check to see if Docker is active:
sudo systemctl is-active docker
  • I create the Docker group:
sudo groupadd docker
  • I add my account to the group:
sudo usermod -aG docker $USER
  • I test the installation:
sudo docker run hello-world

Uninstalling Docker.

Attributions:

https://learnubuntu.com/uninstall-docker/ ↗.

  • From the terminal, I stop the running Docker containers:
docker stop $(docker ps -a -q)
  • I remove the Docker containers:
docker rm $(docker ps -a -q)
  • I remove the Docker images:
docker rmi $(docker images -a -q)
  • I prune the custom Docker networks:
docker network prune
  • I prune the Docker containers, networks, images, cache and volumes:
docker system prune -a
  • I purge every Docker package:
sudo apt purge docker-* containerd.io --auto-remove
  • I remove the Docker files:
sudo rm -rf /var/lib/docker
  • I remove the Docker group:
sudo groupdel docker
  • I remove the Docker socket:
sudo rm -rf /var/run/docker.sock
  • I remove Docker Compose:
sudo rm -rf /usr/local/bin/docker-compose && sudo rm -rf /etc/docker && sudo rm -rf ~/.docker

Installing Docker Desktop.

Docker Desktop is a GUI for Docker.

Attributions:

https://docs.docker.com/desktop/setup/install/linux/ubuntu/ ↗,

https://dev.to/chandrashekhar/docker-desktop-is-not-working-on-ubuntu-2404-lts--2kpa ↗.

  • I download the latest version of Docker Desktop:

https://docs.docker.com/desktop/release-notes/

  • From the terminal, I change to the Downloads directory:
cd ~/Downloads
  • I install the DEB package:
sudo apt install -y ./docker-desktop*.deb

NOTE: Ignore the error message after installation.

  • I fix the permissions issue:
echo 'kernel.apparmor_restrict_unprivileged_userns = 0' | sudo tee /etc/sysctl.d/20-apparmor-donotrestrict.conf
  • I reboot my system:
reboot
  • After the reboot, I return to a terminal and launch Docker Desktop:
systemctl --user start docker-desktop
  • From the Apps Drawer, I pin the Docker Desktop icon to the Dock.

Uninstall Docker Desktop.

  • From the terminal, I remove Docker Desktop from my system:
sudo apt remove docker-desktop
  • I remove the configuration and data files:
sudo apt remove docker-desktop && sudo rm /usr/local/bin/com.docker.cli && sudo apt purge docker-desktop

Installing Open WebUI.

Open WebUI is a browser-based AI interface.

  • From the terminal, I use Docker to pull Open WebUI:
sudo docker pull ghcr.io/open-webui/open-webui:main
  • Now I can run Open WebUI on port 3000 from within the Docker container:
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
  • Alternatively, I can start Open WebUI from Docker Desktop.

Updating Blender.

Blender is a 3D modelling, rendering, animation, and simulation app.

  • From the terminal, I update Blender:
sudo apt purge -y --auto-remove blender && sudo snap install blender --classic

Removing Blender.

  • I use the following command to remove Blender:
sudo snap remove blender

Installing VS Code.

VS Code (Visual Studio Code) is a free, versatile code editor.

  • From the terminal, I install VS Code:
sudo snap install code --classic

Removing VS Code.

I use the following command to remove VS Code:

sudo snap remove code

VS Code Extensions.

I find the following VS Code extensions useful:

  • Live Server,

  • Geo Data Viewer,

  • Code Spell Checker,

  • JavaScript (ES6) Code Snippets,

  • Prettier - Code formatter,

  • Markdown All in One,

  • rust-analyzer, and

  • C/C++

These optional VS Code extensions are also handy:

  • Ayu,

  • ES Lint,

  • Beautify,

  • Colorize,

  • Rainbow Tags,

  • Auto Rename Tag,

  • Markdown Table Prettifier,


Installing Spotify.

Spotify is an app and streaming service.

  • From the terminal, I install Spotify:
sudo snap install spotify

Removing Spotify.

  • I use the following command to remove Spotify:
sudo snap remove spotify

Installing Screenkey.

Screenkey displays keystrokes on a monitor.

  • From the terminal, I install Screenkey:
sudo apt install -y screenkey

Installing Inkscape.

Inkscape is a vector-based image editor.

  • From the terminal, I add the repo:
sudo add-apt-repository ppa:inkscape.dev/stable
  • I update my system:
sudo apt clean && \
sudo apt update && \
sudo apt -y dist-upgrade && \
sudo apt --fix-broken install && \
sudo apt autoclean && \
sudo apt -y autoremove
  • I install Inkscape:
sudo apt install -y inkscape

Installing Krita.

Krita is a pixel-based image editor.

  • From the terminal, I install Krita:
sudo snap install krita

Installing the Brave Browser.

Brave is a Chromium-based web browser.

  • From the terminal, I install the Brave browser:
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list && sudo apt update && sudo apt install -y brave-browser

Installing Rust.

Rust is a general-purpose, memory-safe, programming language.

  • From the terminal, I install Rust:
sudo apt install build-essential && curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh && source "$HOME/.cargo/env"
  • I check to version:
rustup --version
  • I open the docs:
rustup doc

Uninstalling Rust.

  • I use the following command to uninstall Rust:
rustup self uninstall

Installing OBS Studio.

OBS Studio is a screen casting and streaming app.

  • From the terminal, I install the repository:
sudo add-apt-repository ppa:obsproject/obs-studio
  • I update, and upgrade, my system:
sudo apt update && sudo apt -y upgrade
  • I install OBS Studio:
sudo apt install -y obs-studio

Installing DaVinci Resolve Studio 19.

DaVinci Resolve is a video editing, colour grading, and sound mixing app.

NOTE: DaVinci Resolve Studio requires a user license.

  • I download the latest Linux copy of DaVinci Resolve 19 Studio:

https://www.blackmagicdesign.com/au/support/family/davinci-resolve-and-fusion

  • From the terminal, I install the following packages:
sudo apt install -y libqt5x11extras5 libfuse2
  • I go to the Downloads directory:
cd ~/Downloads
  • I extract the contents of the downloaded ZIP file:
sudo unzip ./DaVinci_Resolve_*_Linux.zip
  • I change the mode of the extracted RUN file to an executable:
sudo chmod +x ./DaVinci_Resolve_*_Linux.run
  • I install the unzipped run file:
sudo SKIP_PACKAGE_CHECK=1 ./DaVinci_Resolve_*_Linux.run -i

NOTE: The SKIP_PACKAGE_CHECK=1 command bypasses the check system that looks for missing libraries during the installation.

  • I make a new directory called disabled_libs:
sudo mkdir /opt/resolve/libs/disabled_libs
  • I move the libglib, libgio, and libgmodule into the disabled_libs directory:
sudo mv /opt/resolve/libs/libglib-2.0.so* /opt/resolve/libs/libgio-2.0.so* /opt/resolve/libs/libgmodule-2.0.so* /opt/resolve/libs/disabled_libs/

NOTE: Moving these libraries forces Resolve to use the Ubuntu libraries.

  • I update my NVIDIA drivers, if required:
sudo apt install -y nvidia-driver-550

NOTE: Resolve requires the 550 drivers or later.

  • I run the application using the Desktop icon (in the Apps Drawer), or as a terminal session:
/opt/resolve/bin/resolve

Fixing the Resolve Scaling Issue.

  • Open a project.

  • Go to DaVinci Resolve (top left) > Preferences > User.

  • Set the UI Display Scale to 200%.


Installing Fusion Studio 19.

Fusion Studio is a visual effects, 3D animation, and motion graphics app.

NOTE: Fusion Studio uses the same license that activates DaVinci Resolve Studio.

  • I download the latest Linux copy of Fusion Studio 19:

https://www.blackmagicdesign.com/au/support/family/davinci-resolve-and-fusion

  • I go to the Downloads directory:
cd ~/Downloads
  • I extract the contents of the downloaded ZIP file:
sudo unzip ./Blackmagic_Fusion_Studio_*_installer.zip
  • I change the mode of the extracted RUN file to an executable:
sudo chmod +x ./Blackmagic_Fusion_Studio_*_installer.run
  • I install the unzipped run file:
sudo SKIP_PACKAGE_CHECK=1 ./Blackmagic_Fusion_Studio_*_installer.run -i
  • I update my NVIDIA drivers, if required:
sudo apt install -y nvidia-driver-550

NOTE: Fusion requires the 550 drivers or later.

  • I run the application using the Desktop icon (in the Apps Drawer), or as a terminal session:
/opt/BlackmagicDesign/Fusion19/Fusion

One Final Update.

  • From the terminal, I update my system one last time:
sudo apt clean && \
sudo apt update && \
sudo apt dist-upgrade -y && \
sudo apt --fix-broken install && \
sudo apt autoclean && \
sudo apt autoremove -y

The Results.

Setting up a personalized Ubuntu 24.04 LTS system involves selecting and installing a variety of applications and utilities that cater to my specific needs. From essential software like package managers and partition tools to specialized applications for development, media, and productivity, each component plays a crucial role in enhancing my computing experience. By carefully choosing and configuring these tools, I can create a versatile and efficient environment that supports my daily tasks and long-term goals. I keep my system updated while exploring new tools that can further optimize my workflow.


In Conclusion.

I’ve improved my Ubuntu experience with these essential apps & utilities.

Over the past 10 years, I’ve discovered these must-have applications and utilities that let me tailor my system to my requirements. As a developer, a creative, and someone who loves a well-organized digital workspace, this guide includes a minimum set of tools that I find essential.

From package managers like APT, Snap, and Flatpak, to partition managers like GNOME Disks and GParted, and the media utilities that ship in Ubuntu Studio, I have a standard set of tools that meets most of my daily needs.

With tools like Blender for 3D modelling, DaVinci Resolve Studio for video editing, and VS Code for app development, I can easily achieve any outcome that comes to mind.

I can stream my favourite tunes with Spotify while compiling new software using the Rust compiler. I can even enhance my app development with tools like Docker Desktop and Miniconda.

Keeping my system updated and exploring new tools will significantly optimize my workflow and support my daily tasks as well as my long-term goals.

What are your go-to applications? Share your favourites in the comments below!

Until next time: Be safe, be kind, be awesome.


Hash Tags.

#Ubuntu #Linux #OpenSource #Productivity #SoftwareDevelopment #TechTools #Innovation #UbuntuStudio #Blender #DaVinciResolveStudio #VSCode #Docker #Spotify #TechCommunity

0
Subscribe to my newsletter

Read articles from Brian King directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Brian King
Brian King

Thank you for reading this post. My name is Brian and I'm a developer from New Zealand. I've been interested in computers since the early 1990s. My first language was QBASIC. (Things have changed since the days of MS-DOS.) I am the managing director of a one-man startup called Digital Core (NZ) Limited. I have accepted the "12 Startups in 12 Months" challenge so that DigitalCore will have income-generating products by April 2024. This blog will follow the "12 Startups" project during its design, development, and deployment, cover the Agile principles and the DevOps philosophy that is used by the "12 Startups" project, and delve into the world of AI, machine learning, deep learning, prompt engineering, and large language models. I hope you enjoyed this post and, if you did, I encourage you to explore some others I've written. And remember: The best technologies bring people together.