()

NAME
auto-apt-proxy - autodetect common APT proxy setups

USAGE
auto-apt-proxy

auto-apt-proxy [COMMAND [ARGS ...]]

DESCRIPTION
auto-apt-proxy is an APT proxy autodetector, and detects common setups by checking localhost, your gateway and other “interesting” machines on your network for well-known APT proxies such as apt-cacher-ng and others.

When called with no arguments, auto-apt-proxy simply prints the address of a detected proxy to the standard output. This package installs an APT configuration file that makes APT use auto-apt-proxy to detect a proxy on every invocation of APT.

When called with arguments, they are assumed to be a command. Such command will be executed with the common environment variables used for specifying HTTP proxies (http_proxy, HTTP_PROXY) set to the detected proxy. This way the executed command will be able to transparently use any detected APT proxy. Note that for this to work, any programs invoked by the given command must have their own support for detecting HTTP proxies from those environment variables, and for using them.

CONFIGURATION
When your apt proxy is installed on localhost or your default gateway, it should Just Work. If you install it somewhere else, you can create an explicit SRV record to tell auto-apt-proxy about it.

Suppose your corporate domain is “example.com”, and apt-cacher-ng is installed on “apt-cacher-ng.example.com”, and auto-apt-proxy is installed on “alices-laptop.example.com”.

The appropriate SRV record in dnsmasq.conf would look like this:

        srv-host=_apt_proxy._tcp.example.com,apt-cacher-ng.example.com,3142

The appropriate nsd/bind zonefile entry would look like this (untested):

        _apt_proxy._tcp.@  IN SRV 0 0 3142 apt-cacher-ng.@

As an alternative to an SRV record, one can also define a special hostname which needs to be resolved via DNS or local /etc/hosts file, called apt-proxy. For example, if your network has a local apt proxy at 9.9.9.9, then add this line to /etc/hosts:

        9.9.9.9    apt-proxy

If avahi-browse or systemd-resolved are installed and active, then auto-apt-proxy will try to find any proxies announced via mDNS. If, for some reason, you would prefer the name of the announced proxy to be resolved via NSS rather than the somewhat arbitrary order provided by Avahi, you can set AUTO_APT_PROXY_MDNS_NAME environment variable to any non-empty string. AUTO_APT_PROXY_DNS_NAME does not change which proxy is used if multiple mDNS provided proxies are available.

You can pass extra flags to resolvectl by setting the AUTO_APT_PROXY_RESOLVECTL_OPTS environment variable.

PRECEDENCE BETWEEN MULTIPLE POSSIBLE PROXIES
auto-apt-proxy will look for possible proxies in the following order:

•   A locally running proxy on 127.0.0.1

•   A locally running proxy on other local addresses

•   A proxy running on the host apt-proxy, according to /etc/hosts.

•   A proxy on the network default gateway

•   A proxy running on the host apt-proxy, according to DNS.

•   A proxy running in the host and port declared in the _apt_proxy_ SRV DNS record

•   A proxy running and announced via mDNS (avahi).

CACHING
By default, auto-apt-proxy will cache its results for 60 seconds.

To disable the cache, set the AUTO_APT_PROXY_NO_CACHE environment variable to any non-empty string.

DEBUGGING ISSUES
By default, auto-apt-proxy operates silently and will only output any detected proxy to stdout, as apt expects. To enable logging, set the AUTO_APT_PROXY_DEBUG environment variable to a non-empty string and auto-apt-proxy will log debugging messages to stderr.

WAITING TO BE ONLINE
Starting with version 18, auto-apt-proxy will wait for the network to be online before attempting to detect any proxies. This is done by calling /usr/lib/apt/apt-helper wait-online, and is intended to help with cases where:

1.  the network takes some time to start;

2.  apt is used right away after booting, even before the network is fully up;

3.  the first auto-apt-proxy call fails to find a proxy, and that gets cached.

To disable this behaviour, you can set the AUTO_APT_PROXY_NO_WAIT_ONLINE environment variable to any non-empty value.

EXAMPLES
$ auto-apt-proxy

Just prints the detected APT proxy

$ auto-apt-proxy debootstrap sid /my/chroot

Creates a new Debian chroot downloading packages from the local proxy.

COPYRIGHT
Copyright (C) 2016-2020 Antonio Terceiro

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/ .