在Ubuntu系统中安装软件,通过选择最快的镜像软件仓库可以提高效率。
最简单实现加速软件仓库软件包下载的方法是确保在/etc/apt/sources.list
中Ubuntu镜像定义包含相关的国家代码最接近你所在的位置。例如,你可以在/etc/apt/sources.list
中找到美国的Ubuntu镜像
deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
如果你不在美国,可以将us
替换成你所在国家,例如cn
表示中国,可以修改成
deb http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted
在/etc/apt/sources.list
中使用镜像协议可以使得apt
命令从你所在国家获取镜像。
例如,将/etc/apt/sources.list
中配置的协议http://
修改成mirror://
。即,将:
deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
修改成
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial main restricted
重复以上修改,将整个/etc/apt/sources.list
中的http://
都修改成mirror://
。也可以使用如下sed
命令一次修改完成:
sudo sed -i -e 's/http:\/\/us.archive/mirror:\/\/mirrors/' -e 's/\/ubuntu\//\/mirrors.txt/' /etc/apt/sources.list
以上是简单的选择快速镜像的方法。然而,也可以手工选择镜像网站。
以下是使用wget
命令获取apt ubuntu mirrors:
wget -qO - mirrors.ubuntu.com/mirrors.txt
然后手工修改/etc/apt/sources.list
netselect
软件包可以从Debian stable仓库获取:
sudo apt-get install wget
wget http://ftp.au.debian.org/debian/pool/main/n/netselect/netselect_0.3.ds1-26_amd64.deb
sudo dpkg -i netselect_0.3.ds1-26_amd64.deb
然后就可以通过netselect
命令通过ping icmp延迟定位到最快的镜像网站。
sudo netselect -s 20 -t 40 $(wget -qO - mirrors.ubuntu.com/mirrors.txt)
例如你会看到类似如下输出:
12 http://ubuntu.uberglobalmirror.com/archive/
20 http://ubuntu.mirror.serversaustralia.com.au/ubuntu/
21 http://ubuntu.mirror.digitalpacific.com.au/archive/
...
然后你就可以手工修改/etc/apt/sources.list
将最快的结果替换软件安装源。也可以使用sed
命令替换:
sudo sed -i 's/http:\/\/us.archive.ubuntu.com\/ubuntu\//http:\/\/ubuntu.uberglobalmirror.com\/archive\//' /etc/apt/sources.list