Not all software is available in Debian's repositories, not even in Unstable or Experimental. Some software creators provide downloads of .debs, and some host their own apt repositories. Extrepo exists to help in the latter case. It's a tool for managing these external repositories, without the need for unsigned shell scripts or copy-pasting commands to your terminal.

Installation and configuration

You can install Extrepo from apt (apt install extrepo). By default only repositories with software meeting the Debian Free Software Guidelines (DFSG) licensing requirements can be used and searched. To change that, in /etc/extrepo/config.yaml uncomment the lines with contrib (for DFSG-free software that has non-DFSG-free dependencies), and/or non-free (for non-DFSG-free packages).


You can get a list of all external repositories Extrepo knows about with extrepo search, and you can search for a regular expression by passing in a third argument. It's a long list, so if you don't need all the details for all repositories, you can pipe it through grep ( | grep '^Found'). If the repository you want is on the list, great! You can enable it with extrepo enable repository-name (ran as root). Similarly, to disable a previously enabled repository, use extrepo disable repository-name. If a repository stops working or some metadata about it changes, use extrepo update repository-name.

But what if the external repository you're looking for isn't there? Well, you will have to add it yourself. See, the data about repositories comes from the extrepo-data git repository, hosted on Debian's GitLab instance, Salsa. To add a repository to Extrepo, you need an account there. Creating one will usually take you a day, since the admin has to approve it. After you create an account, you will have to go to the git repository page and fork it. Then git clone your fork onto your machine and create a new file in repos/debian named after your external repository. Copy over the contents from another file in there, and looking at how other files are structured, edit the appropriate data. There isn't a comprehensive guide on this, but some pattern recognition is enough not to screw up badly. TODO

If you liked the article, consider donating Monero to my address: 45ZFoDAouGHH1gC697mRLPK9zMAxnnnccSYQj1Aa2BJnjZhWnbeojWRE5RKR9CeY7qYtt2eESYC4mYqypxE7sfxqLdLi3Eh (QR)