解决Ubuntu Snap下载速度慢的问题

尔曹身与名俱灭,不废江河万古流。

——《戏为六绝句》唐/杜甫

从 Ubuntu/Ubuntu Kylin 16.04 LTS 开始, Ubuntu 引入了一种全新的打包方式——snappy, 这项技术极大的简化了开发者对应用程序的打包与分发的工作,克服了传统仓库的局限性,使得定期推送软件更新更加快捷方便,同时极大的提升了系统的安全性。

然而在 Ubuntu Snap 在中国大陆并没有授权 Snap 源镜像服务,导致使用 Snap 安装 vlc/chromium/gimp 等软件的时候速度及其缓慢,经常遇到timeout之类的问题。记录一个解决Ubuntu Snap下载速度慢问题的方法。

环境/前提条件

  1. 可用的VPN,V2Ray和SSR都可,本地开放http转发

  2. Ubuntu 16.04+(18.04/19.04/19.10/20.04)

  3. 简单vim/nano使用(我用的vim)

具体实现

Snappy 是软件部署和软件包管理系统,其包称为“snap”,工具名为“snapd”,我们直接修改 snapd 的服务调用环境。

选择合适的 Ubuntu 文本编辑器

如果不想使用 nano ,可以使用 apt remove 卸载 nano:

1
sudo apt remove nano && sudo apt install vim

或者设置 Ubuntu 默认编辑器,选择vim.basic

1
sudo update-alternatives --config editor

设置 snap 代理

运行sudo systemctl edit snapd命令,在编辑界面添加如下文字:

1
2
3
[Service]
Environment="http_proxy=http://127.0.0.1:port"
Environment="https_proxy=http://127.0.0.1:port"

其中port是在VPN代理软件中设置的http本地协议端口,一般V2Ray都会设置http和socks5两种本地传入协议端口,e.g.:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"inbounds": [
{
"port": "1080",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true
},
"tag": "in-0"
},
{
"port": "1081",
"protocol": "http",
"settings": {},
"tag": "in-1"
}

重启 snapd 服务

1
2
sudo systemctl daemon-reload
sudo systemctl restart snapd

Reference

  1. snappy 简介之桌面篇
  2. 在Ubuntu下设置默认编辑器