如何找到最佳的Ubuntu APT存储库镜像

时间:2020-03-21 11:44:23  来源:igfitidea点击:

安装全新的Ubuntu OS之后,要做的第一件事是选择最好和最快的APT存档镜像。
在本简要教程中,我列出了根据下载速度找到最佳Ubuntu APT存储库镜像的所有可能方法。
镜子可能并不总是最接近位置,但可以提供最佳的下载速率和更新状态。

为什么要找到最好的APT镜?

如果系统在安装时已连接到Internet,则安装程序将根据我们所在的位置和ISP自动选择最近的镜像。
但是,如果Internet不可用,则将选择“主”存储库。
如果我们居住在美国以外的地区,则从Main存储库安装软件包可能会非常缓慢。
这就是为什么必须按照以下部分所述为Ubuntu系统选择最佳镜像和最近镜像的原因。

查找最佳Ubuntu APT存储库镜像

在继续之前,强烈建议备份现有的sources.list文件:

$sudo cp /etc/apt/sources.list{,.backup}

现在让我们找出最好的APT存档镜像。
我们可以用GUI和CLI的方式来做到这一点。

图形方式:

如果我们在Ubuntu桌面上,请打开“软件和更新”窗口:

在Ubuntu软件选项卡下,从“下载自”下拉框中选择“其他”,然后选择“选择最佳服务器”选项。

将执行一系列测试以找到可以为位置提供最佳下载速度的镜像。
只需几秒钟。
找到最佳镜像后,单击“选择服务器”选项。

关闭软件和更新窗口。
系统将提示我们重新加载软件列表。
单击“重新加载”按钮以更新存储库列表。
现在,sources.list会自动使用最佳和最快的Ubuntu存储库镜像URL更新。

这是为我的Ubuntu桌面查找最佳Apt镜像的首选方法。
即使我住在荷兰,也向我推荐了来自美国,英国和意大利国家的最好的镜子。
因此,我想地理位置并不总是能提供最好的镜子。

命令行方式:

有许多命令行工具可用于根据下载速度找到最佳的APT镜像。
我已经测试了以下工具,它们在我的Ubuntu 20.04 LTS桌面上运行正常。

  • 公寓选择
  • 智能公寓

所有上述工具都是用Python编写的。
因此,可以使用Pip软件包管理器进行安装。
如果尚未安装Pip,请使用以下命令进行安装:

$sudo apt install python3-pip

1.使用Apt-select查找最佳的Ubuntu APT存储库镜像

Apt-select是一个命令行工具,用于查找快速且最新的Ubuntu存档镜像。
它会根据我们所在的国家或者根据下载率排名最高的镜像为我们生成sources.list文件。

确保已安装Pip并运行以下命令来安装apt-select:

$pip3 install apt-select

现在,运行以下命令以查找给定国家/地区的顶级apt镜像:

$apt-select --country IN

或者,

$apt-select -C IN

注意:这里C是大写字母。

输出示例:

Getting list of mirrors...done.
Testing latency to mirror(s)
[7/8] 87% connection to ubuntu.mirror.snu.edu.in: timed out
[8/8] 100%
Getting list of launchpad URLs...done.
Looking up 1 status(es)
1. ubuntu-archive.mirrors.estointernet.in
Latency: 85.85 ms
Org: Esto Internet
Status: Up to date
Speed: 10 Gbps
Selecting mirror http://ubuntu-archive.mirrors.estointernet.in/...
New config file saved to /home/theitroad/sources.list

上面的命令仅从荷兰返回一个顶部镜像,并生成一个新的sources.list并将其保存在当前目录中。

如果未提供国家/地区代码,则默认情况下将获取美国镜像。

显示顶部N个镜子

我们还可以使用-t标志从前N个镜像生成source.list。
默认情况下,它仅显示一个顶部镜像。

$apt-select -t 3

输出示例:

WARNING: no country code provided. defaulting to US.
Getting list of mirrors...done.
Testing latency to mirror(s)
[85/85] 100%
Getting list of launchpad URLs...done.
Looking up 3 status(es)
[3/3] 100%
1. la-mirrors.evowise.com
    Latency: 40.64 ms
    Org:     Evowise.com
    Status:  Up to date
    Speed:   10 Gbps
2. mirrors.xtom.com
    Latency: 246.64 ms
    Org:     xTom
    Status:  Up to date
    Speed:   20 Gbps
3. mirrors.advancedhosters.com
    Latency: 253.92 ms
    Org:     AdvancedHosters
    Status:  Up to date
    Speed:   2 Gbps
Selecting mirror http://la-mirrors.evowise.com/ubuntu/...
New config file saved to /home/theitroad/sources.list

根据状态显示镜像

Apt-select可以使用-m标志在镜像状态上显示结果。
选择是:

  • 最新,
  • 一天后
  • 两天后
  • 一个星期之后
  • 未知。

默认情况下,apt-select将返回最新的镜像。

以下命令返回的镜像时间落后一周:

$apt-select -m one-week-behind

我们可以组合多个选项并生成sources.list文件。
例如,以下命令将返回前3个镜像,包括一周前最后更新的镜像:

$apt-select -c -t 3 -m one-week-behind

通过延迟对镜像进行排名

要按延迟列出前3个镜像(不包括状态),请使用-p标志:

$apt-select -t 3 -p

从列表中选择镜像

此命令允许我们从美国前3个镜像中选择一个镜像,并生成sources.list。

$apt-select --choose -t 5 --country US

或者不久之后,

$apt-select -c -t 5 -C US

注意:此处,小号c表示“选择”,大写字母C表示国家/地区代码。

通过输入适当的编号,从列表中选择任意一个镜像:

显示镜像,但不生成sources.list文件

以下命令返回前三个镜像,但不会生成sources.list文件:

$apt-select -t 3 -l

要查找5个镜像,但又不想生成source.list并排除状态,请执行以下操作:

$apt-select -t 5 -p -l

更新系统的sources.list文件

根据要求生成sources.list文件后,只需用新的文件替换原来的文件(/etc/apt/sources.list)。

$sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
$sudo mv sources.list /etc/apt/

要获取帮助,请运行:

$apt-select --help

请参阅Apt-select GitHub存储库以获取更多详细信息:

2.使用Apt-smart查找最佳的Ubuntu APT存储库镜像

Apt-smart是另一个用Python编写的命令行工具。
它可以找到可为位置提供最佳下载速度的APT镜像。
它可以查询Debian镜像列表,Ubuntu镜像列表和Linux Mint镜像列表,并根据用户居住的国家/地区选择最佳的镜像,从而智能地检索镜像。
发现的镜像按带宽及其状态(如up-至今,落后3小时,落后1周等)。

Apt-smart的另一个显着功能是,当更新当前镜像时,它将自动切换到任何其他不同的镜像。
用户可以自动或者手动选择新的镜像。
不错的是,Apt-smart会先备份当前的sources.list,然后再使用新的镜像对其进行更新。

在Ubuntu中安装Apt-smart

确保已安装Pip并逐个运行以下命令来安装Apt-smart:

$pip3 install --user apt-smart
$echo "export PATH=$(python3 -c 'import site; print(site.USER_BASE + \"/bin\")'):$PATH" >> ~/.bashrc
$source ~/.bashrc

显示当前镜子的详细信息

要列出/etc/apt/sources.list文件中配置的当前主镜像并在标准输出中显示其详细信息,请运行:

$apt-smart --find-current-mirror

或者不久:

$apt-smart -f

输出示例:

http://in.archive.ubuntu.com/ubuntu

找到最好的镜子

要发现可用的镜像,对它们进行排名并从列表中选择一个最佳镜像,并在标准输出中显示它,请运行:

$apt-smart --find-best-mirror

或者,

$apt-smart -b

输出示例:

2017-07-02 07:13:41 ubuntuserver apt_smart[1613] INFO Ubuntu 20.04 (focal) is supported (based on known EOL dates).
2017-07-02 07:13:41 ubuntuserver apt_smart[1613] INFO Adding BASE_URL mirror:
2017-07-02 07:13:41 ubuntuserver apt_smart[1613] INFO http://archive.ubuntu.com/ubuntu
2017-07-02 07:13:41 ubuntuserver apt_smart.backends.ubuntu[1613] INFO Identifying fast Ubuntu mirrors using http://mirrors.ubuntu.com/mirrors.txt ..
2017-07-02 07:13:42 ubuntuserver apt_smart.backends.ubuntu[1613] INFO Discovered 8 Ubuntu mirrors in 0.8 seconds.
2017-07-02 07:13:42 ubuntuserver apt_smart[1613] INFO Checking 9 mirrors for availability and performance ..
2017-07-02 07:13:44 ubuntuserver apt_smart[1613] INFO Start retrieving :attr:`base_last_updated` using is_available
2017-07-02 07:13:44 ubuntuserver apt_smart[1613] INFO Checking 8 mirrors for Archive-Update-in-Progress marker ..
2017-07-02 07:13:52 ubuntuserver apt_smart[1613] INFO Finished checking 9 mirrors (took 10.55 seconds).
http://mirrors.piconets.webwerks.in/ubuntu-mirror/ubuntu

根据等级列出所有镜像

要列出终端中所有可用的已排序镜像,请运行:

$apt-smart --list-mirrors

或者,

$apt-smart -l

更换镜像

找到最佳的APT镜像后,可以更新/etc/apt/sources.list以使用给定的镜像,如下所示:

$apt-smart --change-mirror http://mirrors.piconets.webwerks.in/ubuntu-mirror/ubuntu

或者,

$apt-smart -c http://mirrors.piconets.webwerks.in/ubuntu-mirror/ubuntu

自动更新镜像

我们可以让Apt-smart选择最佳的Apt镜像并使用如下所示的新新镜像自动更新sources.list,而不是在Ubuntu中手动查找和更新最佳的镜像:

$apt-smart --auto-change-mirror

要获取帮助,请运行:

$apt-smart --help