To the Home Page

Reinstalling Debian, fast

Published on October 12, 2024 · Reading time: 3 minutes

This weekend, I reinstalled Debian. Here’s how I’ve quickly (like, 2 hours or so) restored my main PC to a working state:

Installation

I’m installing Debian on an existing encrypted volume group with a separate /home partition, using minimal netinst ISO and a wired network connection, in UEFI mode with secure boot disabled. Debian installer can’t decrypt disks, but it is possible to do this in another virtual terminal and then configure /etc/crypttab manually later on, as described in this blog post.

As a side note, this was possible on Ubuntu as well, but not only has Canonical not published any netinst images for the recent 24.04 LTS, they have not implemented ANY support for decrypted disks in their new Flutter installer, rendering this distro unusable for any serious work.

During the setup, I’ve decided to enable non-free repositories and backports and selected only a minimal set of packages (no GUI). After the reboot, I’ve run apt-get install gnome-core to install only the required components of GNOME desktop, without games and extra apps. This adds NetworkManager as a dependency, so I’ve had to remove the old /etc/network/interfaces file.

You may want to install other packages as well, such as cups (printing service), file-roller (archive manager), gnome-calendar, gnome-clocks, gnome-weather, simple-scan and so on.

UX improvements

Debian 12 ships with GNOME 43, which has some GTK3 apps, some GTK4 apps, and some libadwaita-based apps. Thankfully, there is an adw-gtk3 project that makes theming more consistent. Copy theme files to ~/.local/share/themes and enable it using a gnome-tweaks app.

I don’t really like the Cantarell font, mostly because it’s too thin. Inter (the one used on this very website) looks much better and can be installed from the fonts-inter package.

If you need your PC for anything productive, disable attaching modal windows using the Tweaks app. Oh, and add minimize and maximize buttons if you wish.

Some useful extensions can be installed from the gnome-shell-extension-manager app. Make sure to remove gnome-shell-extension-prefs because it is redundant in this case.

Software selection

Firefox: Removed firefox-esr and installed a standard version from Firefox APT repo. From a security standpoint, it’s better to run the latest browser’s version directly from Mozilla.

Chromium: Installed from the main repo, it may be slightly out-of-date because it’s maintained by Debian, but I use this browser only for testing.

Epiphany: Installed from the main repo. Once again, its engine is based on Safari 17, but I need it only for testing.

Nemo: Nautilus, the default file manager of GNOME, is very unstable in this release, and Nemo is a good replacement.

LibreOffice: Installed libreoffice-{writer,calc,gnome,gtk4} from backports. Added Polish language support: task-polish, hunspell-pl.

VLC: Removed totem (GNOME video player) and installed VLC. Missing thumbnails can be restored by ffmpegthumbnailer package.

KiCad: Installed from backports.

Docker: Installed Docker Engine based on official instructions.

VirtualBox: Installed VirtualBox 7.0 based on official instructions. I don’t like the new UI of VirtualBox 7.1, so I’ll stick with the older version for now.

Python: Python 3.11 is installed by default, and sadly there are no newer versions in Debian repos. You can try to install deadsnakes PPA, even if it is meant to be used with Ubuntu. pip can be installed from python3-pip package.

Node.js: Installed Node 20.x from NodeSource, based on manual installation instructions.

Other software can be installed from the main repo, backports, third-party repos, or Flathub.

Check out other blog posts: