apt/apt-get更新失败:无法连接archive.debian.org求助
看起来你是在Chrome OS的Linux开发环境里遇到apt更新的问题了对吧?从你贴的命令输出能看到,核心问题是无法连接到archive.debian.org的80端口,提示No route to host,而且你用的还是Debian Stretch版本的源——先提一句,Stretch是早就停止官方支持的旧版本,归档源的节点本身可能已经不稳定甚至下线了,这大概率是问题的根源。
下面给你几个一步步排查和解决的办法:
第一步:先确认基础网络连通性
先试试能不能ping通目标服务器,或者用telnet测试80端口是否可访问:ping archive.debian.org telnet archive.debian.org 80如果ping不通或者telnet连不上,要么是你的网络环境(比如Chrome OS的网络设置、本地防火墙)限制了访问,要么就是这个旧源的节点确实不可用了。
第二步:替换为稳定的旧版本归档源(推荐)
因为Stretch已经属于EOL(停止支持)版本,原archive.debian.org的源稳定性很差,建议换成Debian官方维护的旧版本归档源:- 先备份原来的源配置文件,避免改错了没法恢复:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak - 编辑源配置文件(用nano或者vim都可以,这里用nano举例子):
sudo nano /etc/apt/sources.list - 把所有指向
http://archive.debian.org/debian和http://archive.debian.org/debian-security的行,替换成专门的旧版本归档源地址,比如改成:
如果上面的源还是连不上,也可以换成Debian归档备份源:deb http://deb.debian.org/debian stretch main contrib non-free deb http://deb.debian.org/debian-security stretch/updates main contrib non-freedeb http://archive.debian.org/debian-archive/debian stretch main contrib non-free deb http://archive.debian.org/debian-archive/debian-security stretch/updates main contrib non-free - 按
Ctrl+O保存,Ctrl+X退出编辑后,重新运行sudo apt update试试。
- 先备份原来的源配置文件,避免改错了没法恢复:
第三步:重启Chrome OS的Linux容器
有时候Chrome OS的Linux容器网络会出现异常,重启一下可能就能解决:- 打开Chrome OS的设置,找到「高级」→「开发者」→「Linux开发环境」
- 点击「关闭」,等容器完全停止后再重新打开,之后再尝试apt更新。
第四步:检查代理或防火墙设置
如果你的网络用了代理,或者本地开启了防火墙,看看是不是这些设置阻止了对archive.debian.org的访问:- 检查代理环境变量:
echo $HTTP_PROXY $HTTPS_PROXY,如果有设置,确认代理服务是正常可用的 - 临时关闭防火墙(如果开启了ufw的话):
sudo ufw disable,测试更新后记得重新开启:sudo ufw enable
- 检查代理环境变量:
另外再啰嗦一句:Debian Stretch已经停止更新好几年了,安全性和软件兼容性都没保障,看你的环境里已经有cros-packages的Bookworm源了,如果可以的话,建议你升级到Bookworm这个当前的稳定版本,后续的更新和软件安装都会顺畅很多。
备注:内容来源于stack exchange,提问作者Dried Rice Pxelglitch

