Snap,全称SnapCraft,是一个全新的应用软件环境。在Snap中,软件被封装在类似于Docker的容器中,作为虚拟盘(借助回环设备)挂载,即开即用,可随时获取,这一切由其后台服务snapd
提供支持。Ubuntu从18.04开始,就引入它作为系统的一部分,而其他的Linux发行版(如Deepin)也可以通过软件管理工具进行安装(如sudo apt install snapd
)。
SnapCraft将软件包分发在自己的服务器上。然而,因为众所周知的原因,访问位于海外的Snap服务器异常缓慢,不加代理的情况下,下载速度会持续降到十几KB每秒。这使得我们不得不想办法通过代理服务器进行加速。
一般地,Linux上的一些应用程序会通过读取环境变量http_proxy
和https_proxy
来应用代理服务器设置,典型的有Chrome。然而,Snap比较特别,它不会从环境变量中上述环境变量中读取代理服务器设置,因此直接使用export http_proxy=[代理服务器地址]
或export https_proxy=[代理服务器地址]
是不起作用的。
那么,有何正确的方法?
方法一:更改/etc/environment
/etc/environment
是一个Shell脚本,snapd会读取它,应用其中指定的配置信息。因此,设置代理服务器的正确目标,实际上就是这里。
在/etc/environment
中加入:
1 |
|
然后重启snapd服务:
1 |
|
方法二:覆盖snapd的现有设置
除了修改environment
文件,也可以修改snapd服务的配置文件,在其加入Environment信息,信息内容实际上就是“方法一”中设置代理服务器的语句。
运行以下命令,打开snapd的配置文件:
1 |
|
在打开的文本编辑器中,加入以下语句:
1 |
|
最后重新加载snapd服务:
1 |
|
注意事项
一般的本地代理都不支持HTTPS,所以https_proxy的值也只能是http地址,否则会出现如下错误:
1 |
|
参考资料
- 本文作者: 爱拼安小匠
- 本文链接: https://anclark.github.io/2019/04/12/Struggle_with_Linux/为snapd设置代理/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0(署名-非商用-禁止演绎 3.0) 许可协议。转载请注明出处!