在 MacOS 上使用 vagrant up 和 apt-get install 时哈希和不匹配

问题描述 投票:0回答:1

我正在为一个开源项目(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),但没有成功。

有关我的设置的信息:

  • M1 Macbook Air 运行 MacOS Sonoma 14.3.1
  • Docker桌面v4.28.0(最新,用自制程序安装)
  • Vagrant v2.4.1(最新,用自制程序安装)
docker macos proxy vagrant apple-m1
1个回答
0
投票

发布此问题是为了记录解决方案并使其可搜索。这是我解决这个问题的方法:

此问题的症结在于您的系统和服务器之间存在某些东西,并修改了您应该接收的文件。很可能您的系统上正在运行您不知道的代理或 VPN。

下面的每一步都可以独立对待,你可以测试每一步之后是否得到哈希和不匹配。

重新安装docker和vagrant

重新安装 docker 和 vagrant,然后重新启动你的 Mac。

停用除 Wi-Fi 之外的所有网络服务

这可以在系统设置 > 网络 > 其他服务 > 单击服务 > 设为非活动状态下完成

如果您在公司/大学网络中,请切换 DNS

如果您像我一样在大学,这是重要的一步。将网络 > Wi-Fi > 详细信息 > DNS 下的 DNS 更改为 8.8.8.8 (Google) 或 1.1.1.1 (Cloudflare,可能需要更多设置)。

禁用屏幕时间或内容过滤(如果启用)

屏幕时间会创建一个名为 webfilterproxyd 的进程。这可能会干扰传入数据,并且无法从活动监视器中删除,直到 您在设置中禁用屏幕时间。

‼️请自行承担风险尝试以下步骤,并请仔细检查每个步骤的作用。

使用活动监视器终止名称中带有“vpn”的进程

我强制退出了在活动监视器中搜索 VPN 时出现的所有 3 个进程: Activity Monitor search for vpn

使用活动监视器终止名称中带有“proxy”的进程

禁用屏幕时间后,我能够强制退出以下 1/3 的进程: Activity Monitor search for proxy

⚠️ 此时,您的 Mac 可能无法连接到互联网

通过运行来测试这个

curl -I https://registry-1.docker.io/v2/library/ubuntu/manifests/20.04

您应该看到一条错误,指出您无法连接到服务器。

重新启动你的Mac,让一些被杀死的进程再次启动

在此之后重试您的

vagrant up
apt-get
命令应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.