Files
tooling/mint-setup.org

3.8 KiB

Linux Mint Setup

This guide will walk through how I setup fresh installations of Linux Mint. Linux Mint is an operating system for desktop and laptop computers. It is designed to work 'out of the box' and comes fully equipped with the apps most people need.

I use Linux Mint as my daily driver operating system on a variety of different machines. The intent of this guide is to make it easy for me to get back up and running quickly whenver I do a fresh installation.

Setup home directory structure

Configure apt to use a local mirror

To speed up how quickly our system can install new or updated packages we should tell apt to use a mirror here in New Zealand.

# Backup our apt sources configuration before we make changes
sudo cp /etc/apt/sources.list.d/official-package-repositories.list /etc/apt/sources.list.d/official-package-repositories.list.bak

# Replace packages repo with local
sudo sed -i 's|https://packages.linuxmint.com|http://ucmirror.canterbury.ac.nz/linux/mint/packages|g' /etc/apt/sources.list.d/official-package-repositories.list

# Replace base repo with local
sudo sed -i 's|https://archive.ubuntu.com/ubuntu|http://ucmirror.canterbury.ac.nz/ubuntu|g' /etc/apt/sources.list.d/official-package-repositories.list

Install base packages

Now that we have our apt package manager configured let's install the standard packages we use.

sudo apt install --yes htop screenfetch git curl wget xclip emacs xterm xtermcontrol jq tmux tmate apt-transport-https

For working with container images locally outside of kubernetes clusters we use podman so that we can avoid the security problems of a standard docker daemon. Follow the steps below to install podman:

# Add the repositories to our apt sources
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

# Add the repository key
curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/Release.key" | sudo apt-key add -

sudo apt update && sudo apt --yes install podman

For additional package management namely bitwarden we use node package manager. The code below installs node 16.x, which is the latest stable release as of <2021-10-02 Sat>.

# Curl down the shell script for adding version 16 of nodejs to apt
sudo curl  -sL https://deb.nodesource.com/setup_16.x | sudo bash -

# Install the nodejs package via apt
sudo apt-get install -y nodejs

For managing secrets we use bitwarden which provides a great cli utility. Additionally in our bashrc file included in this repository there are a number of helper functions to make working with bw easier.

# Install the bitwarden cli via node package manager
sudo npm install -g @bitwarden/cli

# Test login to bitwarden
bw login mail@jamesblair.net

For ad-hoc system administration we use ansible. We install ansible via pip3 to ensure any modules or additional packages required at a later date can be easily managed.

For significant ansible or python projects a virtual environment for python is suggested to keep project packages separate from system python packages.

pip3 install ansible

Restore ssh keys and dotfiles

Optional - Install hardware drivers

Optional - Setup humacs editor

Optional - Setup mutt mail client