Scroll to navigation

EXTREPO(1p) User Contributed Perl Documentation EXTREPO(1p)


extrepo - manage external Debian repositories


extrepo search search_key

extrepo enable repository_name

extrepo disable repository_name

extrepo update repository_name


The extrepo tool is used to manage external repositories in Debian. Before extrepo, users who wished to use software not packaged for Debian had to manually write the apt configuration files, run an unsigned script as root, or install an unsigned .deb package that contained all the configuration on their system. None of these methods were very secure.

Extrepo remedies this by way of a metadata repository for external package repositories. The user can search the list of metadata repositories by way of "extrepo search", and manage them through "extrepo enable", "extrepo disable", or "extrepo update".

By default, only the main policy is enabled, which means only repositories with DFSG-free licensed packages are searched and can be enabled. This can be changed in the configuration file.



Specifies the URL from which extrepo will fetch the data for all repositories it manages. This makes it possible to use your own extrepo data server.

Warning: when using --url file:///usr/share/extrepo/offline-data (see also --offlinedata below), extrepo bypasses the GPG-based integrity checks of the index.yaml containing the repositories data, as the files provided by the extrepo-offline-data are supposed to be already validated through the normal Debian package GPG key infrastructure.


Equivalent to --url file:///usr/share/extrepo/offline-data. Makes it possible to use the extrepo data from the extrepo-offline-data package.


Overrides the URL of the external repository. This options is only useful for the enable and update command. It makes it possible to use your own mirror of external repositories, but keeping the original GPG authentification that is provided by extrepo.


search key

Searches for a repository where the given argument key (a regular expression) matches either the name of the repository, its description, or the URL of the repository in question. The full YAML configuration of all repositories that have a match are printed to standard output.

To search for all repositories, don't provide any search key.

enable repository_name

Enable the repository named repository_name.

There are two cases for this command:

  • If the repository had not yet been created before, this creates its configuration from the current metadata.
  • If the repository had been created before but disabled by way of the "extrepo disable" command, re-enable it without updating the metadata. If you want to update it, see the "extrepo update" command.

    If --mirror is used, the URI of the repository to re-enable will also be updated.

disable repository_name

This simply adds a line "Enabled: no" to the apt configuration file, so that the repository is not enabled. It can be re-enabled by changing the line to "Enabled: yes" (or removing it entirely), or by way of the "extrepo enable" command (second case).

update repository_name

Re-writes the apt configuration file for this repository, as well as the GPG keyring for it, from the current metadata.


/etc/extrepo/config.yaml Extrepo configuration file.


<> for instructions on adding your own repository


Wouter Verhelst

2022-10-13 perl v5.34.0