Skip to content

Ubuntu

Installation

Once the installation has started and the system has loaded, as mentioned in Bootable Installation Media. Follow on-screen instructions.

Post Installation

sudo apt update && sudo apt upgrade
sudo apt install build-essential ubuntu-restricted-extras p7zip-full curl git git-lfs btop neovim neofetch gnome-shell-extension-manager ssh
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
rm -rf Miniconda3-latest-Linux-x86_64.sh
mkdir -p ~/.local/src/
sudo groupadd sandbox
sudo usermod -aG sandbox $USER
newgrp sandbox
sudo mkdir /srv/sandbox/
sudo chgrp sandbox /srv/sandbox/
sudo chmod 2775 -R /srv/sandbox/
# Reboot.

The build-essential package installs important development tools, including a compiler, linker, libraries, and headers used during software compilation. Many third-party programs rely on it, and errors can occur if it is missing. It often comes pre-installed on some distributions.

Note

build-essential may by default already be installed on certain versions of Ubuntu like 20.04.5.

The ubuntu-restricted-extras package installs software not included in the Ubuntu installation ISO due to copyright restrictions. It includes programs such as: ttf-mscorefonts-installer, libavcodec-extra, libavcodec-extra58, libmspack0, libvo-amrwbenc0, unrar, cabextract, libaribb24-0, gstreamer1.0-libav, gstreamer1.0-plugins-ugly, and gstreamer1.0-vaapi

The fonts-powerline package installs special fonts which make the BASH shell easier on the eyes, particularly when using tools like oh-my-bash. This is a minimalist approach: this package is the "old school" standard. It adds a very specific, small set of characters to your existing system fonts. For modern systems, use Nerd Fonts: a massive project that takes popular programming fonts (like Fira Code, Hack, or JetBrains Mono) and "patches" them with thousands of icons.

The p7zip-full package installs a utility to archive and unarchive files. This is an important tool to have.

Note

A small reminder: when extracting files, the -o option in the 7z command must not have a space between -o and the output path. For example: 7z x "archive.zip" -ooutput/path

The curl and wget packages install utilities that allow downloading files from remote computers via URLs. Typically, wget comes as a dependency of build-essential with Ubuntu, but curl may not. I prefer to have both available.

The ffmpeg package installs a utility for working with media files, such as MPEG-4 videos and MP3 audio. However, I have found it better to install ffmpeg inside a conda environment to keep the system-level environment clean.

The git package is the most common source code management tool. Although there are other tools like Plastic SCM and Perforce, most teams use git. It is also useful to install git-lfs for handling large files.

Note

Sometimes, Git Large File Storage (LFS) can cause issues. I usually resolve them with: git lfs install --skip-repo

On Ubuntu, the common tool for making backups is timeshift. It automatically creates /timeshift folder for its backups. It is recommended to dedicate a separate disk for that. Right now, the best I could do is to use a partition. The following commands will mount a partition at the /timeshift path. Start by retrieving UUID of the selected partition.

sudo blkid /dev/sda3
sudo nvim /etc/fstab
/etc/fstab:
+    /dev/disk/by-uuid/2e11a84b-8fdf-4ad3-b3d9-6da3ab1bad4f /timeshift ext4 defaults 0 2

The drive should disappear from the dashboard, tested on Ubuntu 24.04.2. The changes should apply after reboot. Further instructions to backup files are detailed in How To Use Timeshift.