![如何为 apt-get 自动选择快速镜像](https://linux22.com/image/1326492/%E5%A6%82%E4%BD%95%E4%B8%BA%20apt-get%20%E8%87%AA%E5%8A%A8%E9%80%89%E6%8B%A9%E5%BF%AB%E9%80%9F%E9%95%9C%E5%83%8F.png)
有没有插件可以让 apt-get 像 YUM 一样选择快速镜像fastestmirror 插件 最快的镜像插件专为存储库配置而设计,在存储库配置中,您有多个镜像。它会连接到每个镜像,对连接进行计时,然后按最快到最慢的顺序对镜像进行排序,以供 yum 使用。
原因:我在 apt 的配置文件中添加了几个(内部网和外部网)镜像,我希望我在办公室时 apt-get 使用内部网镜像,在家时使用外部网镜像。
答案1
作为一种解决方法,您可以编写一个脚本来检查您连接到哪个网络并相应地更改 /etc/apt/sources.list。类似于下面的脚本,只需对其进行编辑以满足您的需求即可。
第一的,备份你的/etc/apt/sources.list
。然后,创建两个 sources.list 文件,一个用于家庭,一个用于办公室。我们假设它们分别称为sources.office.list
和sources.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 镜像。