Debian

Debian logo.

Introduction

I have been using Ubuntu for more than a decade, and mostly I have been quite content with Ubuntu. Ubuntu provides a nice mostly hassle-free Linux desktop experience - easy initial installation experience, easy to install new packages, etc. Ubuntu is a Debian based distribution, and lately I have been wondering why not just use Debian instead. Especially when Canonical (the company behind Ubuntu) is promoting its own Snap package system. I don’t quite like the idea having several package managers in my Linux environment, more about that later on. Also, I like more the idea that Debian is fully community driven project, compared to Ubuntu which is owned by a private company (Canonical).

Initial Installation

I have a couple of extra inexpensive old laptops around. One free weekend I thought that I install Debian in one of them, a bit of a test drive before the decision to switch to Debian on my primary desktop.

Before starting the installation, I took a backup of the home directory and some data directories from the old Ubuntu using rsync, to an external USB drive.

The initial installation was really easy. Actually almost the same as with the Ubuntu installation. Just get the Debian ISO image, burn it to USB stick, and boot from the USB stick and start the installation. The installation process asks you some questions regarding keyboard and locale, etc. The initial installation is over about in an hour.

After installation, I realized that the user I created for myself is not in the sudoers group. I like to be a sudoer, so I added myself to the group. If I remember correctly, Ubuntu added the user automatically into the sudoers group.

Package Installations

This was easy. Since Ubuntu is a Debian based distribution, both use the excellent Advanced Package Tool, APT. So, just apt update and start installing packages:

sudo apt update
sudo apt install -y meld
...

During the installation I kept an installation diary - documented the commands when installing packages, configuring environment, etc. This is a good idea - you should do the same. It makes your life a lot easier when making the same installations to another laptop.

Let’s highlight some of the useful tools I have in all of my laptops:

Then the usual programming related tools, like Git, Java, Clojure, Python environments, etc.

A Word of Warning About Package Managers

When building Python versions using pyenv, I had some weird errors. I read the build log files and I realized that there were some clashes regarding some libraries that were installed previously using Homebrew. I had installed e.g., McFly using brew, since the documentation had this as the first option. Then I installed Python versions also using brew. But then I had the same kind of issues later on when installing Jekyll which I use in blogging. I realized that it is not a good idea to have several package managers in your Linux workstation. So, I completely removed brew from my computer and used Unix shell script installation options when installing those tools that do not provide an apt package for installation. I strongly recommend this strategy: When using a Debian based workstation, do not install other package managers - just stick with the apt tool.

Keyboard Hotkeys

Finally, I configured some hotkeys to smooth my workflow. In Debian Settings navigate to: Keyboard => Keyboard Shortcuts => View and Customize Shortcuts, and from there:

  • Navigation => Switch windows directly: Ctrl+Ä
  • Windows => Toggle maximization state: Ctrl+Å

I use those Scandinavian keys, since they are easy to access in my keyboard, and they are not bound to any other functionality in any programs.

I also have a superkey in my Dygma keyboard for those two functionalities: one of the thumb keys provides access to these hotkeys: tap once: Switch windows directly, and tap twice: Maximize current window. So, when using a laptop in my lap, I can give switch windows or maximize a window command using Ctrl+Ä and Ctrl+Å, and when I am working at my desk with my Dygma Raise keyboard, I can just tap or double-tap with my thumb to switch windows or maximize a window. You can read more about my keyboard configurations in Linux Keyboard Configuration with Keyd and Dygma Raise Keyboard Reflections Part 1.

Conclusions

Both Ubuntu and Debian are excellent Linux distributions. If you are a total Linux newbie, Ubuntu might give you slightly easier installation and basic setup. But if you prefer a community driven Linux experience, Debian is a good alternative.

The writer is working at a major international IT corporation building cloud infrastructures and implementing applications on top of those infrastructures.

Kari Marttila

Kari Marttila’s Home Page in LinkedIn: https://www.linkedin.com/in/karimarttila/