After more than a year of development, Debian 12 was finally realised on 10th June 2023. This new release was given the codename “Bookworm“. It has several new features and improvements, making it an appealing release for Debian users. One of the nifty and cool features is that it contains over 11200 new packages, bringing the total number of packages to over 59000! Also, over 9500+ packages have been removed in this update for being old and obsolete.
The other cool features of Debian 12 Bookworm are:
- The Linux Kernel 6.1: Debian 12 uses the Linux Kernel 6.1. This is the latest LTS Linux kernel that has several features such as the enablement of Intel Meteor Lake, improved ARM SoC support, experimental support for Rust etc.
- Pipewire by default for GNOME: Debian 12 now provides support for PipeWire, bringing it to par with other leading Linux distributions like Pop OS, Fedora and Ubuntu. This replaces the old PulseAudio, to handle audio and video.
- Desktop environment improvements: ALl the major desktop environments are now updated to their latest releases apart from GNOME. The available versions of Debian 12 are GNOME 43, KDE Plasma 5.27, LXDE 11, LXQt 1.2, MATE 1.26 and Xfce 4.18
- Default theme and wallpapers: Each Debian release comes with its own set of artwork from the community. Debian 12 is not different from them all, it uses a new artwork themed as Emerald.
- Updated Software Suite: There are several other software that has been updated on Debian 12. These include LibreOffice 7.4, GIMP 2.10.34, Vim 9.0, Inkscape 1.2.2, Firefox 102.9 ESR, OpenJDK 11.6, PHP 8.2, Python 3.11+, Samba 4.17
After installing Debian12, there are a couple of activities you need to perform to bring the system to full functionality. In this guide, we will walk through the top Must-Do Things After Installing Debian 12 (Bookworm).
1. Add User and Enable sudo Access
After installing Debian 12, you will realise that your user account does not have sudo access. This is mainly because Debian doesn’t provide the option of granting sudo access to user accounts during installation.
If you try to run any sudo command, you will see this:
Now to add a user and/or enable sudo access, you need to switch to the root user:
su -
You can add a user with the desired name if you do not have one created:
adduser <username>
Replace username with the desired name for the user and proceed as shown:
# adduser debian
Adding user `debian' ...
Adding new group `debian' (1001) ...
Adding new user `debian' (1001) with group `thor (1001)' ...
Creating home directory `/home/debian' ...
Copying files from `/etc/skel' ...
New password: Provide_password_here
Retype new password: Re-enter_the_password
passwd: password updated successfully
Changing the user information for debian
Enter the new value, or press ENTER for the default
Full Name []: debian
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
Adding new user `debian' to supplemental / extra groups `users' ...
Adding user `debian' to group `users' ...
Here, there are two ways of enabling sudo for the user.
- Method 1: The first one is editing the below file:
visudo
In this file, add the below line providing the exact name of your user account:
your-username ALL=(ALL:ALL) ALL
After replacing your-username correctly, save the file and proceed to validate if access is granted.
- Method 2: The other way to enable sudo is by adding the user to the sudo group
usermod -aG sudo your-username
Also here, replace your username in the above command. With any of the above methods used, validate if you have sudo access as shown:
2. Configure Networking
It is also important to ensure that you have internet access to your system before you proceed. Check the internet status or the assigned IP address on your system with the command:
ip a
Sample Output:
You can also view this on GUI under settings-> Network
By default, you will have DHCP configured. Some users prefer setting a static IP address. This is so easy on Debian 12. using Network Manager.
From the command line, launch the Network Manager CLI:
nmtui
Proceed and edit the network.
Select the connection to modify.
Now set the IP configuration to manual and provide your network config.
Save the changes then stop and start the network.
You can also set a static IP address on GUI under Settings-> Network and then proceed as shown:
Once the changes have been made, verify the IP address setting:
3. Configure Timezone / NTP Synchronization
It is important to ensure that the Time and Date settings are made correctly on your Debian 12 system after the installation. To check the date and time, you can use the commands below:
$ date
Thu Jun 22 03:32:42 EDT 2023
$ timedatectl status
Local time: Thu 2023-06-22 03:32:55 EDT
Universal time: Thu 2023-06-22 07:32:55 UTC
RTC time: Thu 2023-06-22 07:32:55
Time zone: US/Eastern (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
For this guide, we will use Chrony to set NTP synchronization. First install the package:
sudo apt install chrony
Once installed, start and enable the service;
sudo systemctl start chrony
sudo systemctl enable chrony
To view the available timezones, use:
$ timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
.....
Now set the timezone on your system.
sudo timedatectl set-timezone Africa/Nairobi --adjust-system-clock
sudo timedatectl set-ntp yes
Once the changes have been made, verify using the command:
$ timedatectl
Local time: Thu 2023-06-22 10:39:04 EAT
Universal time: Thu 2023-06-22 07:39:04 UTC
RTC time: Thu 2023-06-22 07:39:04
Time zone: Africa/Nairobi (EAT, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
4. Disable CD/DVD Package Repository
When running a system update, you will realise errors for the CDROM repositories because the cdrom repository does not have a release file.
To clear this error, we need to open the /etc/apt/sources.list file for editing. For this guide, I will use vim
, ensure it is installed before you proceed:
sudo vim /etc/apt/sources.list
In the file, comment out the CDROM repos:
Once the changes have been made, save the file and proceed as shown
5. Update Debian 12 (Bookworm) System
Now you can easily update the system and all the available packages to their latest available versions. Use the commands:
sudo apt update
sudo apt upgrade -y
Sample Output:
6. Install and Enable OpenSSH server
By default, OpenSSH is not enabled on Debian 12 after the installation. First, install OpenSSH with the command:
sudo apt install openssh-server openssh-client
Once installed, ensure that it is started and enabled:
sudo systemctl enable --now ssh
Verify if the service is running:
$ systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Fri 2023-06-16 05:49:41 EDT; 2min 46s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 3957 (sshd)
Tasks: 1 (limit: 4623)
Memory: 3.3M
CPU: 63ms
CGroup: /system.slice/ssh.service
└─3957 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
OpenSSH stores its configuration file at /etc/ssh/sshd_config. This file can be modified as desired to suit your preferences. Here, we will leave the default values and verify if we can access the system via SSH using the set IP address.
$ ssh [email protected]
The authenticity of host '192.168.200.56 (192.168.200.56)' can't be established.
ED25519 key fingerprint is SHA256:T6Dv/yw1jyUC5jo3tLoQ2yyU9f+dFudGahVL2bwmu24.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
[email protected]'s password:
Once connected, you can proceed to other system administration tasks. If you do not want to use password authentication, generate the SSH keys on your workstation and copy them to the Debian 12 machine with the command:
##On your Local Machine
ssh-copy-id debian12-user@debian12-IP_address
For example:
Now verify if you are able to access the system without a password:
Now you can modify the OpenSSH config and disable password authentication via SSH:
$ sudo vim /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
Once the changes have been made, restart the service:
sudo systemctl restart ssh
7. Enable UFW Firewall service
To improve the security of the system, you can enable the firewall. On this system, we will install UFW:
sudo apt install ufw -y
Once installed, enable it:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Now we can make basic settings for UFW. Deny all the incoming traffic apart from SSH, or any other service as desired:
sudo ufw default deny incoming
sudo ufw allow ssh
Allow all outgoing traffic:
sudo ufw default allow outgoing
8. Install and Customize Desktop Environments
By default, Debian 12 supports a number of desktop environments. To install a preferred Desktop environment, follow any of the below guides:
- Installing Gnome / KDE / Xfce on Debian 12 (Bookworm)
- Install Cinnamon / MATE Desktop on Debian 12 (Bookworm)
You can then tweak the Desktop environment as desired. For Gnome, the Gnome Tweak tool makes it easier to change themes, fonts and window behaviours on Debian 12. Launch it from the app menu as shown:
Once launched, you can make the desired adjustments to the system.
For my case, I want to add the minimize and maximize buttons to my windows. In the Windows title bars tab, enable the buttons.
Now you can also enable the dark mode on Debian 12 (Bookworm) as shown:
9. Enable Gnome Shell Extensions
To be able to install and manage the Gnome shell extensions, you need to install the below package:
sudo apt install gnome-shell-extension-manager -y
Once the installation is complete, launch it from the App Menu.
Once launched, you can enable various extensions such as User Themes, Dash to dock
You can also manage the extension configurations here. Below is a screenshot with dash-to-dock enabled on Debian 12.
10. Enable Snapd on Debian 12 (Bookworm)
Snap is a modern package manager which makes it easier to install packages on any Linux system. It can be installed on Debian 12 with the command:
sudo apt install snapd
Once installed, ensure that it is started and enabled:
sudo systemctl enable --now snapd
Check the status of the service:
$ systemctl status snapd
● snapd.service - Snap Daemon
Loaded: loaded (/lib/systemd/system/snapd.service; enabled; preset: enabled)
Active: active (running) since Fri 2023-06-16 06:27:42 EDT; 4s ago
TriggeredBy: ● snapd.socket
Main PID: 5040 (snapd)
Tasks: 7 (limit: 4623)
Memory: 9.5M
CPU: 47ms
CGroup: /system.slice/snapd.service
└─5040 /usr/lib/snapd/snapd
Now you can proceed and install distribution-independent packages on Debian 12.
11. Install Google Chrome web browser
Google Chrome is now of the most popularly used browsers. By default, it is not installed on Debian 12 (Bookworm). There are several ways of installing Google Chrome. For this guide, we will use APT repos.
Begin by importing the GPG key:
wget https://dl-ssl.google.com/linux/linux_signing_key.pub -O /tmp/google.pub
sudo gpg --no-default-keyring --keyring /etc/apt/keyrings/google-chrome.gpg --import /tmp/google.pub
Add the repositories:
echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main' | sudo tee /etc/apt/sources.list.d/google-chrome.list
Update the system and install Google Chrome:
sudo apt update
sudo apt install google-chrome-stable
Once complete, launch it from the App Menu:
Proceed and enjoy.
Verdict
That marks the end of this detailed guide on top Must-Do Things After Installing Debian 12 (Bookworm). I hope this guide was of importance to you.
Interested in more:
- How To Install Podman 4 on Debian
- How To Install MongoDB 6 on Debian
- Run Debian / Ubuntu Linux in LXC Container on Promox VE