EXTREPO(1p)

πŸ“¦
version 0.15 Β· 5 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– EXTREPO πŸ’–

okay bestie, sit DOWN, because this is the extrepo page from the User Contributed Perl Documentation corner of the manual β€” that's the 1p section for all you section-number girlies β€” and it's literally about managing external Debian repositories. let's get into it πŸŽ€


✨ NAME ✨

extrepo β€” manage external Debian repositories. that's the whole vibe. πŸ’…


🌸 SYNOPSIS 🌸

the four moves, in order:

extrepo search search_key

extrepo enable repository_name

extrepo disable repository_name

extrepo update repository_name

πŸ¦‹ DESCRIPTION πŸ¦‹

so the extrepo tool is what you use to manage external repositories in Debian. and before extrepo existed?? bestie. it was giving chaos. if you wanted software that wasn't packaged for Debian, you had to either:

  • hand-write the apt configuration files yourself 😭
  • run an unsigned script as root πŸ’€
  • or install an unsigned .deb package that had ALL the configuration stuffed inside it on your system πŸ™ˆ

and ngl, none of those methods were very secure. not one. zero of them. it was not the moment.

Extrepo fixes this by way of a metadata repository for external package repositories. iconic behaviour. so now you can search the list of metadata repositories with extrepo search, and manage them through extrepo enable, extrepo disable, or extrepo update. periodt. πŸ‘‘

by default, only the main policy is enabled β€” which means only repositories with DFSG-free licensed packages get searched and can be enabled. want to change that? it's in the configuration file, bestie. ✨


πŸ’œ OPTIONS πŸ’œ

--url

specifies the URL that extrepo will fetch the data from for all the repositories it manages. this is your moment if you want to run your own extrepo data server. slay.

⚠️ warning, and I mean it: when you use --url file:///usr/share/extrepo/offline-data (see also --offlinedata right below, iykyk), extrepo bypasses the GPG-based integrity checks of the index.yaml that contains the repositories data. why is that okay-ish? because the files provided by the extrepo-offline-data are supposed to be already validated through the normal Debian package GPG key infrastructure. so like... it's fine, but know that's what's happening. πŸ’€

--offlinedata

equivalent to --url file:///usr/share/extrepo/offline-data. makes it possible to use the extrepo data from the extrepo-offline-data package. cute, short, same thing. 🫢

--mirror

overrides the URL of the external repository. this option is only useful for the enable and update command. it lets you use your own mirror of external repositories while keeping the original GPG authentication that extrepo provides. best of both worlds, honestly. ✨

--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. so like, it's not you, it's the metadata. 😭
  • 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. she's flexible!! πŸ’…
  • 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

...which sets the default to auto. yes bestie, one line, that's it.

it goes without saying (but I'm saying it anyway because I love you) 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, hello regex girlies) 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. just vibes. ✨

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). lowkey the simplest undo ever. πŸ’…

update repository_name

re-writes the apt configuration file for this repository, as well as the GPG keyring for it, from the current metadata. fresh start, no cap. πŸ¦‹

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. so it refreshes the files but respects the disabled ones. we love a respectful tool. 🫢


🌈 FILES 🌈

  • /etc/extrepo/config.yaml β€” extrepo configuration file. that's the one. πŸ“‚

⭐ SEE ALSO ⭐


πŸ‘‘ AUTHOR πŸ‘‘

Wouter Verhelst


and that's the whole page, bestie πŸ’– this was extrepo from the User Contributed Perl Documentation, perl v5.40.1, dated 2026-02-17 β€” thank you for coming to my TED talk, go enable something responsibly, mwah πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from