由于众多不同规模的防火墙存在,互联网不是总能互联的,有些工具在国内就很不好用。
通常有两种解决思路:
- 优化网络
- 换能访问的源
brew
- Homebrew
- Homebrew Core
- Homebrew Cask
- Homebrew-bottles
1 | # 替换 Homebrew |
Snap
很不幸,国内似乎没有源,更不幸的是换源和翻墙可能也解决不了问题。
参考以前 pyenv 速度慢的 cache 文件替换法,最后采用打日志+外部下载+安装的方式解决了问题。
以安装 vscode 为例,具体分为以下步骤。
vim /usr/lib/systemd/system/snapd.service
观察得到 snapd 环境文件地址vim /etc/sysconfig/snapd
中添加 SNAPD_DEBUG=1 和 SNAPD_DEBUG_HTTP=7sudo snap install --classic code
运行改命令执行安装,速度正常的话就不需要进行下一步了,否则继续。我是碰到 100KB 以内的速度,并且下载到 50% 就会中断,被逼无奈只能继续。journalctl -fxeu snapd
等卡一段时间之后运行该命令,从最后几行中找到retry.go:49: DEBUG: Retrying https://api.snapcraft.io/api/v1/snaps/download/Ht0aUHi7ofh9Fbwh6m7jUN2pAy6kzBiu_40.snap, attempt 1, elapsed time=5.22µs
这一行日志,获取真实的下载地址- 这里需要一个配置良好的 aria2,下载速度飞起,我是上了 8MB 的速度,短时间就下完了。
- 把正在运行的 snap 杀掉。
journalctl -fxeu snapd
从刚才那行日志上一行找到真实文件地址,将真实文件 mv 过去。sudo snap install --classic code
再次执行该指令,经过文件校验之后可以直接安装。