Merazi's Blog

My corner of the internet

Hey there!

Last week I was configuring a freshly installed Debian system, and I wanted to install Librewolf on it. When I went to their website I discovered an amazing tool for handling third party APT repositories for Debian in a very clean and easy way, and it turned out to be an officially supported tool that doesn't get enough recognition. That's why I decided to write this blog post.

extrepo provides a consistent, Debian‑friendly way to discover, enable, disable, and update external repositories (think third‑party projects that provide Debian packages such as LibreWolf, Steam, VirtualBox, etc.).

Of course, the best source of information for this package is the manpage, you can run man extrepo after installing the extrepo package in Debian or Debian based distributions, but I still wanted to talk about it myself.

Installation

extrepo is available from Debian’s official package archive. You can check the package listing and available versions on Debian’s package search (search for "extrepo" on the packages site).

Example install:

sudo apt update
sudo apt install extrepo

Basic usage

Common extrepo commands (from the tool’s help output) include:

/usr/bin/extrepo search     # search for repositories
/usr/bin/extrepo update     # update a repository's metadata
/usr/bin/extrepo disable    # disable an extrepo-configured repository
/usr/bin/extrepo enable     # (re-)enable an extrepo repository

Useful options:

Finding available repositories

To list all repository names extrepo knows about, this command works (it performs an empty search and extracts names from the output):

extrepo search | grep ^Found | awk '{print $2}' | sort

While it may not be the most elegant solution, it works; you can adapt it or parse extrepo's output programmatically if you prefer.

Examples of packages/repos

Projects that commonly provide repositories and that people add via extrepo include: - VirtualBox - Steam (Valve) - LibreWolf - Tor Browser

Note: availability depends on the extrepo data feed and the package maintainers. If a project doesn’t appear, check that the upstream provides a Debian repository and that extrepo’s data source includes it.

Non‑free software

extrepo supports enabling repositories that contain non‑DFSG‑free software, but Debian’s apt sources and APT policy still apply. To enable contrib/non‑free in extrepo’s default configuration, edit /etc/extrepo/config.yaml and enable those policies:

---
url: https://extrepo-team.pages.debian.net/extrepo-data
dist: debian
version: trixie
# To enable repositories that host software with non-DFSG-free licenses,
# uncomment "contrib" and/or "non-free" in the list below.
enabled_policies:
- main
- contrib
- non-free

After enabling, you can enable relevant third‑party repos (for example, repos that offer NVIDIA drivers). Remember that enabling non‑free repositories may bring software that is not DFSG‑free and may have different support or licensing considerations.

Safety and best practices

Further reading

Final thoughts

extrepo is a small but useful tool as it centralizes discovery and management of third‑party Debian repositories, encouraging more Debian‑compliant installs and reducing manual changes to your APT configuration. If you use third‑party repos often, it’s worth trying.

Thanks for reading!

Back to Home