EXTREPO(1p)

NAME
extrepo - manage external Debian repositories

SYNOPSIS
extrepo search search_key

extrepo enable repository_name

extrepo disable repository_name

extrepo update repository_name

DESCRIPTION
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.

OPTIONS

  --url
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.

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

  --mirror
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 authentication that is provided by extrepo.

  --tor
Define the tor mode. This can be one of the following options

onion
    When this option is selected, extrepo will try to use a .onion URL that is specified in the extrepo metadata. If no such URL is specified, extrepo will exit with an error message. Note that not all repositories in the extrepo metadata have a .onion URL set, because not all repositories even have a .onion URL assigned.

tunnel
    When this option is selected, extrepo will prepend "tor+" to all URLs, but will disregard any .onion URLs that may exist. This tunnels all traffic through tor, but will not use the .onion URLs, even if such an URL exists in the extrepo metadata.

auto
    When this option is selected, extrepo will use a .onion URL if one is specified in the extrepo metadata, as though the "onion" option were selected. If no such URL is specified, extrepo will instead prepend "tor+" to the regular URL in the extrepo metadata, as if "tunnel" were selected.

if-onion
    When this option is selected, extrepo will use a .onion URL if one is specified in the extrepo metadata, as though the "onion" option were selected. If no such URL is specified, extrepo will instead use the regular URL without any tor configuration, as if "off" were selected.

off (or not specified)
    When this option is selected, no tor configuration will be written by extrepo. This is the default.

It is possible to set a default other than "off" by adding a line to "/etc/extrepo/config.yaml"; e.g.,

    tor: auto

sets the default to "auto".

It goes without saying that all the arguments for this option except "off" require the apt-transport-tor package to be installed.

SUBCOMMANDS

  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.

As of extrepo 0.13, the parameter repository_name may be dropped; in that case, all known repositories will be updated. Note that doing so will update all files that exist in /etc/apt/sources.list.d and whose name starts with "extrepo_", even those that are disabled; however, any disabled repositories will not be enabled.

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

SEE ALSO
<https://salsa.debian.org/extrepo-team/extrepo-data> for instructions on adding your own repository

AUTHOR
Wouter Verhelst