今天开了台华为云学生机,使用 Ubuntu Server 18.04.3 LTS 系统。由于是国内机器,在安装各式软件的时候都需要通过镜像以提升下载速度。

apt

首先是 Ubuntu 自带包管理器 apt。apt 在国内有非常多的镜像可供选择,而这些镜像都需要和官方仓库 http://archive.ubuntu.com/ubuntu/ 同步以提供服务;通过 https://api.i-meto.com/mirrors.page 页面可以查看众多镜像在国内的同步情况,同步越新镜像的可用性就越高,安装到旧版本软件的可能性就会越小。

我会更加偏向于选择云服务厂商提供的镜像,因为他们本身拥有足够的计算和网络资源去维护镜像,同时因为是商业公司他们提供的服务往往会比部分高校稳定;通过查看 https://api.i-meto.com/mirrors.page 页面也可以发现部分高校提供的镜像确实是欠缺同步甚至是无法访问的。而镜像的不稳定会为日后服务器维护工作带来更高的成本。

起初我选择了华为云本身提供的镜像 https://mirrors.huaweicloud.com,但是发现华为云的镜像仅仅为北京单点,经 @sukkaw 提示为对象存储 OSS(Object Storage Service)。而通过 ping 命令也可以发现就算是华为的机器,访问华为提供的镜像也不会走内网,而广州的机器访问北京也会在速度上也会有较小的影响(虽然真的很小)。

root@ecs-s2-medium-2-linux:~# ping mirrors.huaweicloud.com
PING 60dc0ac37e0c45b28c616b484b1c6ea6.waf.huaweicloud.com (117.78.24.32) 56(84) bytes of data.
64 bytes from ecs-117-78-24-32.compute.hwclouds-dns.com (117.78.24.32): icmp_seq=1 ttl=44 time=38.6 ms
64 bytes from ecs-117-78-24-32.compute.hwclouds-dns.com (117.78.24.32): icmp_seq=2 ttl=44 time=38.0 ms
64 bytes from ecs-117-78-24-32.compute.hwclouds-dns.com (117.78.24.32): icmp_seq=3 ttl=44 time=38.0 ms
64 bytes from ecs-117-78-24-32.compute.hwclouds-dns.com (117.78.24.32): icmp_seq=4 ttl=44 time=38.0 ms
64 bytes from ecs-117-78-24-32.compute.hwclouds-dns.com (117.78.24.32): icmp_seq=5 ttl=44 time=37.9 ms
--- 60dc0ac37e0c45b28c616b484b1c6ea6.waf.huaweicloud.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 37.989/38.182/38.689/0.310 ms

回头看了下阿里云提供的镜像 https://mirrors.aliyun.com,点进去文档一看:

OPSX 软件仓库依托于阿里云成熟的 分布式网络文件存储 和 内容分发加速 (CDN) 技术

好了那就这个了。

以及,腾讯云也提供了镜像源 https://mirrors.cloud.tencent.com 然而是中国上海单点。

然而写到这里的我发现,华为云也是有内网镜像 http://mirrors.myhuaweicloud.com 的!

然后就换到了华为云的内网镜像以达到 apt 的最大速度:


# 备份 sources.list 文件
cp -a /etc/apt/sources.list /etc/apt/sources.list.bak

# 修改官方镜像至内网镜像
sed -i "s@http://.*archive.ubuntu.com@http://mirrors.myhuaweicloud.com@g" /etc/apt/sources.list
sed -i "s@http://.*security.ubuntu.com@http://mirrors.myhuaweicloud.com@g" /etc/apt/sources.list

# 更新 apt 源
apt update

# 安装常用软件
apt install build-essential wget curl vim coreutils

另外腾讯云的内网镜像为 http://mirrors.tencentyun.com,阿里云内网镜像为 http://mirrors.aliyuncs.com,青云内网镜像为 http://mirrors.ks.qingcloud.com,使用时留意替换即可。

pip

我日常使用有几个 python 软件,如 speedtest-cliyoutube-dlyou-get; 故此在通过

apt install python-pip python3-pip

安装 python 以后,需要设置相应的镜像以正常下载使用通过 pip 分发的 python 软件。通过阅读 更改pip源至国内镜像,显著提升下载速度,决定使用豆瓣提供的镜像:

# 通过镜像安装 pip 最新版本(?)
pip install -i https://pypi.douban.com/simple/ pip -U

# 切换到镜像
pip config set global.index-url https://pypi.douban.com/simple/

值得留意的是,由于不同主机提供商提供的镜像有所区别,在配置完 pip 镜像以后,需要先运行

pip install setuptools

以避免安装其他软件时出现错误。

nodejs

# 添加 nodejs 最新 LTS 版本(目前为 10.16.1)分发仓库 - 可在 https://nodejs.org 查看最新 LTS 版本号
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash

接下来参考 https://mirror.tuna.tsinghua.edu.cn/help/nodesource/

编辑 /etc/apt/sources.list.d/nodesource.list,把 https://deb.nodesource.com/node/ 替换为 https://mirrors.tuna.tsinghua.edu.cn/nodesource/deb/ 即可。 如果是 https://deb.nodesource.com/node_10.x/ ,则改为 https://mirrors.tuna.tsinghua.edu.cn/nodesource/deb_10.x/

然后

apt install nodejs

一般安装完毕以后 nodejs 会自带 npm(除非安装进程被中断 这时可能需要删除已经安装的 nodejs 并且按照上述步骤重新安装。

也可以尝试在运行完

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash

后尝试

apt install npm

npm 可以选择切换到国内淘宝提供的镜像:

npm config set registry https://registry.npm.taobao.org

或者使用 cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

到这里,个人常用的软件源镜像均已配置完成。