Find a fast, up-to-date Ubuntu Archive Mirror.
- Tests latency to mirrors in a given country's mirror list at mirrors.ubuntu.com.
- 3 requests are sent to each mirror, minumum round trip time being used for rank.
- Reports latency, status, and bandwidth capacity of the fastest mirrors in a ranked list.
- Status and bandwidth are scraped from launchpad.
- Generates sources.list file using new mirror.
- New mirror can be chosen from a list or selected automatically using the top ranked mirror (default).
Target most recent release:
pip install apt-select
or:
pip3 install apt-select
Target project master branch:
pip install git+https://github.com/jblakeman/apt-select.git
or:
git clone https://github.com/jblakeman/apt-select python apt-select/setup.py install
$ apt-select --help usage: apt-select [-h] [-C [COUNTRY]] [-t [NUMBER]] [-m [STATUS] | -p] [-c | -l] Find the fastest Ubuntu apt mirrors. Generate new sources.list file. optional arguments: -h, --help show this help message and exit -C [COUNTRY], --country [COUNTRY] specify a country to test its list of mirrors used to match country list file names found at mirrors.ubuntu.com COUNTRY should follow ISO 3166-1 alpha-2 format default: US -t [NUMBER], --top-number [NUMBER] specify number of mirrors to return default: 1 -m [STATUS], --min-status [STATUS] return mirrors with minimum status choices: up-to-date one-day-behind two-days-behind one-week-behind unknown default: up-to-date -p, --ping-only rank mirror(s) by latency only, disregard status(es) cannot be used with -m/--min-status -c, --choose choose mirror from a list requires -t/--top-num NUMBER where NUMBER > 1 -l, --list print list of mirrors only, don't generate file cannot be used with -c/--choose The exit code is 0 on success, 1 on error, and 4 if sources.list already has the chosen mirror and a new one was not generated.
Get the top mirror from the United Kingdom to generate a new sources.list::
apt-select --country GB
Choose from the top 3 mirrors, including those last updated a week ago::
apt-select -c -t 3 -m one-week-behind
Find the top 10 mirrors, output latency info only, and don't generate new sources.list::
apt-select -t 10 -p -l
After new sources.list is generated in current working directory, backup and replace to update apt::
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup && \ sudo mv sources.list /etc/apt/
Currently, http, https and ftp are supported.
/etc/apt/sources.list should contain sources in the following format::
[deb|deb-src] [http|https|ftp]://mirror.example.com/path [component1] [component2] [...]
Python HTML parser, BeautifulSoup.
HTTP Requests library, requests.