Sane defaults for the twenty-first century
This project aims to provide a rolling Debian environment featuring recent packages, stability and confortable defaults for casual users, developers and geeks.
I’m nowhere near to define myself as a debian expert, whatever it could mean, so everything you do following this guide is your and only your responsiblity.
Every type of feedback, comment or suggestion is welcome, please do contribute, this page and every suggested configuration is published on this repository, under a GPLv3 license.
A big and exciting part of using a Linux environment is about learning, going mad because everything broke and learning more by fixing things. Blindly copy-pasting will make things way worse later on, so *pretty please* take a moment to review what we are doing in every step and check the configuration files we are applying, knowledge is just one query away.
If you are in a hurry, skip to the Prepare the installation paragraph.
There are some important concept and practices you should be aware of:
The “stable” distribution contains the latest officially released distribution of Debian.
The current “stable” distribution of Debian is version 9, codenamed
The “testing” distribution contains packages that haven’t been accepted into a “stable” release yet, but they are in the queue for that. The main advantage of using this distribution is that it has more recent versions of software.
The current “testing” distribution is
The “unstable” distribution is where active development of Debian occurs. Generally, this distribution is run by developers and those who like to live on the edge.
The “unstable” distribution is always called sid.
Please note that “unstable” refers to the versions of the software shipped, not to the stability of the distribution itself.
We will be on debian testing which is basically another distribution, compared to the stable release.
Being on debian testing will give more bleeding edge software and recent versions. Testing is generally very stable - compared to other distributions - and rarely breaks. E.g. Ubuntu is based on Debian unstable and its LTS version on Debian testing. Anyway, reading What are some best practices for testing/sid users? will give some useful general informations.
You should also pay attention running
apt full-upgrade on testing and unstable, because during migrations or major upgrades, a lot of packages maybe unistalled, leaving you with a broken system. Always read what
apt wants to do, before confirming.
A very common practice allowing the mixing of sources and repositories on Debian. In this page we will add
unstable repositories in the APT sources but we will give more priority to the
testing one, meaning we will install and upgrade everything from that, and only for specific packages (or not available in the
testing one) apt will consider the
Firefox stable is available only on the
unstable distribution, so we pinned the firefox package to that source.
In the “Upgrade to testing” paragraph, check the
preferences file we are applying to get this result.
apt-get install --only-upgrade <packagename>
This command will upgrade only that single package - if it is installed - and won’t install any other package.
You may want to try things on a Virtual Machine, first.
We will start by installing debian stable, and later upgrade if you need more recent package versions.
Download the iso image here.
If you can’t access the network during the install, download the DVD iso here.
Debian has these divisions in the repositories:
1) main: All free software that follows the DFSG (Debian Free Software Guidelines)
2) contrib: Free software that follows DFSG but depends on software in non-free.
3) non-free: All kinds of non-free software that doesn’t follow the DFSG.
We are using the unofficial “non-free” ISO of debian, which includes non-free and contrib software and guarantees compatibility with a lot of hardware.
On Windows, use win32diskimager.
On Linux, run
sudo dd if=debian.iso of=/dev/sdX
debian.iso is our downloaded file and
sdX is your USB key.
Now reboot, disable Secure Boot in BIOS settings and select the USB key as boot device.
This part should be easy if you ever installed a Linux distro, but you can take a look at the following links to see detailed explanation of every step:
You should now be logged in your shiny new Debian. Open a terminal (the actual name depends on the Desktop Environment you chose, it’s Konsole on KDE, MATE Terminal on MATE, …) and start typing these things.
Give yourself sudo (replace “<username>” with your username).
su apt install sudo adduser <username> sudo exit
Log out and log in to get this to take effect.
We will now add our apt sources.list with the testing repositories, add x86 as supported architecture and upgrade the system:
sudo rm /etc/apt/sources.list sudo wget https://raw.githubusercontent.com/avivace/debian-quickstart/master/defaults/sources.list -O /etc/apt/sources.list sudo wget https://raw.githubusercontent.com/avivace/debian-quickstart/master/defaults/preferences -O /etc/apt/preferences sudo dpkg --add-architecture i386 sudo apt update sudo apt full-upgrade -y sudo apt clean sudo apt autoremove -y
This can take a while, depending on your connection speed.
If you’re trying things on a Virtual Machine, mount the Guest Addition drive from the menu and run
mkdir vbox && cp /media/<CDROM>/* vbox/ -r (replace
sudo apt install build-essential dkms linux-headers-$(uname -r) -y sudo ./vbox/VBoxLinuxAdditions.run sudo rm -rf vbox sudo reboot
Otherwise, ignore this step.
Some standard utilities, fonts, a firewall:
sudo apt install wget vim-nox git curl pk-update-icon apt-transport-https gdebi build-essential linux-headers-$(uname -r) fonts-freefont-otf otf-freefont fonts-hack-otf ttf-mscorefonts-installer ttf-bitstream-vera ttf-dejavu ttf-liberation fonts-octicons ufw gufw tlp neofetch tmux debian-keyring
Now we will apply some default configurations files
Running these commands will automatically download and apply them for you:
sudo wget https://raw.githubusercontent.com/avivace/debian-quickstart/master/defaults/.rootbashrc -O ~/root/.bashrc wget https://raw.githubusercontent.com/avivace/debian-quickstart/master/defaults/.bashrc -O ~/.bashrc wget https://raw.githubusercontent.com/avivace/debian-quickstart/master/defaults/.fonts.conf -O ~/.fonts.conf wget https://raw.githubusercontent.com/avivace/debian-quickstart/master/defaults/.tmux.conf -O ~/.tmux.conf
apt install apt-listbugs apt-listchanges in order to be made aware of grave bugs or important changes when you install new packages or during an upgrade.
sudo apt install chromium chromium-l10n chromium-widevine
sudo apt install firefox
Enjoy the feeling of running a beautiful, powerful computer maintained by a global community of dedicated, passionate people that believe in a world of free software.
Is jessie the stable? If I have “stable” in my sources.list what release am I tracking?
You’re now on your own. Or not. There are plenty of places to ask for help and learn a lot about debian:
These supported distributions are based on Debian and provide updated software out of box: