我正在为一个开源项目(Zulip)设置开发环境,当
apt-get install
在使用vagrant和docker(使用vagrant up --provider=docker
)设置的容器内运行时,遇到了哈希和不匹配问题。哈希和不匹配看似随机发生在包上,但往往在进程的 40 或 100 秒左右一致发生。
相关错误日志:
#6 40.42 Err:32 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libpam-runtime all 1.3.1-5ubuntu4.7
#6 40.42 Hash Sum mismatch
#6 40.42 Hashes of expected file:
#6 40.42 - SHA512:e2a7a30fc4184da181c6a5842f16eabcdef22b29815b308f39568f63e3d9386dd7d60dfdb03099c6d007e91e34744878f1f91bbf21580e9fdf8b2ac2cb6e31ee
#6 40.42 - SHA256:9e28174f564168fc1befe0ac07638a648ee472b4ecc72e3f8e7722c9802b8d29
#6 40.42 - SHA1:0aa22485903dd1a6bde45bae2186a778bfd92c0c [weak]
#6 40.42 - MD5Sum:f6e96384d3cf0495d9926539894813bc [weak]
#6 40.42 - Filesize:37288 [weak]
#6 40.42 Hashes of received file:
#6 40.42 - SHA512:72fcf491c1f0f3968c28dfdc52763698baa6019b8ae293946a2e255eccfb477b259a3c5e77a93da2eadeb7a0ccbcbbb55a2f5a5630365145936cec34b3421a67
#6 40.42 - SHA256:1e90b4fd7d1064f1cbd039f1539ab03ae3786174f4e9b98c4b9a6052211d0448
#6 40.42 - SHA1:9a839bcd004682b3eb6b84bc7dbe3a6d00100a64 [weak]
#6 40.42 - MD5Sum:12705aaf10b64d8ff4cf07b63351c2ba [weak]
#6 40.42 - Filesize:37288 [weak]
#6 40.42 Last modification reported: Wed, 17 Jan 2024 18:10:37 +0000
我不知道我的 Mac 上运行着任何代理或 VPN。
我尝试了 3 个不同的镜像和 2 个不同的网络(不同的 ISP),但没有成功。
有关我的设置的信息:
发布此问题是为了记录解决方案并使其可搜索。这是我解决这个问题的方法:
此问题的症结在于您的系统和服务器之间存在某些东西,并修改了您应该接收的文件。很可能您的系统上正在运行您不知道的代理或 VPN。
下面的每一步都可以独立对待,你可以测试每一步之后是否得到哈希和不匹配。
重新安装 docker 和 vagrant,然后重新启动你的 Mac。
这可以在系统设置 > 网络 > 其他服务 > 单击服务 > 设为非活动状态下完成
如果您像我一样在大学,这是重要的一步。将网络 > Wi-Fi > 详细信息 > DNS 下的 DNS 更改为 8.8.8.8 (Google) 或 1.1.1.1 (Cloudflare,可能需要更多设置)。
屏幕时间会创建一个名为 webfilterproxyd 的进程。这可能会干扰传入数据,并且无法从活动监视器中删除,直到 您在设置中禁用屏幕时间。
‼️请自行承担风险尝试以下步骤,并请仔细检查每个步骤的作用。
我强制退出了在活动监视器中搜索 VPN 时出现的所有 3 个进程:
通过运行来测试这个
curl -I https://registry-1.docker.io/v2/library/ubuntu/manifests/20.04
您应该看到一条错误,指出您无法连接到服务器。
在此之后重试您的
vagrant up
或 apt-get
命令应该可以工作。