如何为 apt-get 自动选择快速镜像

如何为 apt-get 自动选择快速镜像

有没有插件可以让 apt-get 像 YUM 一样选择快速镜像fastestmirror 插件 最快的镜像插件专为存储库配置而设计,在存储库配置中,您有多个镜像。它会连接到每个镜像,对连接进行计时,然后按最快到最慢的顺序对镜像进行排序,以供 yum 使用。

原因:我在 apt 的配置文件中添加了几个(内部网和外部网)镜像,我希望我在办公室时 apt-get 使用内部网镜像,在家时使用外部网镜像。

答案1

作为一种解决方法,您可以编写一个脚本来检查您连接到哪个网络并相应地更改 /etc/apt/sources.list。类似于下面的脚本,只需对其进行编辑以满足您的需求即可。

第一的,备份你的/etc/apt/sources.list。然后,创建两个 sources.list 文件,一个用于家庭,一个用于办公室。我们假设它们分别称为sources.office.listsources.home.list。将它们都保存在 中/etc/apt/

现在,编辑以下脚本以满足您的需要并保存它(对于此示例,我假设您将其保存为~/bin/change_sources.sh),并通过运行此命令使其可执行:

$ chmod +x ~/bin/change_sources.sh

剧本:

#!/bin/bash
ip=ifconfig | grep Bcast | cut -d " " -f 12

## Set this for your office IP
if [ $ip == "XXX.XXX.XXX.XXX" ]
then 
    cp /etc/apt/sources.office.list /etc/apt/sources.list 
else
    cp /etc/apt/sources.home.list /etc/apt/sources.list 
fi

现在,编辑该文件etc/rc.local并将此行添加到文件末尾,之前exit(0)

/home/youruser/bin/change_sources.sh

显然,改变上面的路径以反映您刚刚创建的脚本的路径。

下次重新启动时,脚本应该运行并自动选择正确的 sources.list 文件。


编辑:如果你想要两个都随时可访问的存储库,并从最快的存储库(如果存在)下载给定的软件包,您只需更改 sources.list 中存储库的顺序即可。按照我上面建议的步骤,只需使 /etc/apt/sources.office.list 中的相关行如下所示:

deb http://fastest.mirror.for.office
deb http://fastest.mirror.for.home

并且在 /etc/apt/sources.home.list 中如下:

deb http://fastest.mirror.for.home
deb http://fastest.mirror.for.office

如果包存在同一版本在两个存储库中,apt 都会从第一个存储库下载。

注1:如果版本不同,无论存储库的顺序如何,apt 都会获取最新版本。

注 2:这不会检查 repos 的下载速度。您必须自己检查。要找到最快的镜像,您可以尝试使用 netselect-apt:

sudo apt-get install netselect-apt

软件包 netselect-apt:

用于选择快速 Debian 镜像的速度测试器

该软件包提供了一个实用程序,可以通过下载完整的镜像列表并使用 netselect 来查找最快/最近的镜像,从而选择最佳的 Debian 镜像。

相关内容