Install the latest firefox (or another package) version in Debian using sid repository

There is a big misconception that in Debian all packages are outdated. This misunderstanding arises due to in stable releases packages receive mostly security updates and bug fixes. And between stable releases passes about a year. This is why users are waiting for programs functionality update for a long time (if they are on ‘stable’ release, which is most often used).

In this post, I will show how to install a package from ‘sid’ (unstable) repository. This is the repository where updates come first (and therefore it contains the freshest versions).

As an example, we will install the latest version of firefox (of course you can install other packages that you want).

Comparing the version in ‘sid’ repository with the version on the official website

First, lets take a look at current version of firefox in Debian ‘sid’ repository. The current version is 68.0.1:

Firefox package is in unstable repository. This is the latest version on July 20. If we are on ‘buster’ (stable) or bullseye (testing) release we can’t install this package without additional settings

On Mozilla website the latest firefox version exactly the same (68.0.1):

See, on Mozilla official website the latest firefox version is also 68.0.1

Let’s tune our Debian. We can expand it to install packages from ‘unstable’ repository when we want it (without changing the main repository used in the system).

Set up the system to install a certain package from ‘sid‘ repository in 4 steps

First we need to find out which release we are using. Perform lsb_release -a command:

lsb_release -a
Distributor ID:	Debian
Description:	Debian GNU/Linux bullseye/sid
Release:	testing                                                        <------- Here is the info
Codename:	bullseye

OK, I’m on testing release. Your release may differ (stable, oldstable). Remember your release.

Second, create and open 99defaultrelease file with any text editor in /etc/apt/apt.conf.d/ directory:

sudo nano /etc/apt/apt.conf.d/99defaultrelease

Add one of the following lines based on the system release.

If oldstable:

APT::Default-Release "oldstable";


APT::Default-Release "stable";


APT::Default-Release "testing";

Save and close it.

Third, create and open unstable.list file in /etc/apt/sources.list.d/ directory:

sudo nano /etc/apt/sources.list.d/unstable.list

Add the following lines inside it:

deb    unstable main contrib non-free
deb-src    unstable main contrib non-free

You can select other server locations. Use this link (Need to replace only the URL address).

Fourth, update available packages information using apt update command. ‘Sid’ repository information will be downloaded:

sudo apt update

Now it is possible to install the latest firefox version from ‘sid’ reposity. Use -t unstable option:

sudo apt -t unstable install firefox

Here is an explanation of how this works:

sudo apt -t unstable install some_package     <----- Install from sid (unstable) repository - the freshest packages
sudo apt install some_package                      <------ Install from default repository

What’s happening when apt upgrade and apt dist-upgrade performs?

The package installed by this method will not be updated. To update the package use apt -t unstable install the_package command:

sudo apt -t unstable install the_package

Like that you update the package only when you want it. This will keep the system more stable.