搬进宿舍后我第一次拿起树莓派,发现 apt 已经完全坏了。这似乎可能是防火墙的问题,但我不太确定。我参考了这 文章,但所有逻辑修复均不起作用。
我直接在 PC 和 pi 之间从 Wifi 切换到以太网,再切换到 LAN,但仍然出现以下错误。
sudo apt-get update 产生:
rector.raspbian.org/raspbian stretch InRelease
Err:2 http://mirrordirector.raspbian.org/raspbian stretch Release
404 Not Found [IP: 93.93.128.193 80]
Reading package lists... Done
E: The repository 'http://mirrordirector.raspbian.org/raspbian stretch Release' does no longer have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
apt upgrade 有太多 404 错误,甚至不值得在这里放出来,但这里有几个:
b9u1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/u/udisks2/udisks2_2.1.8-1+deb9u1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/u/unzip/unzip_6.0-21+deb9u2_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
E: Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/u/usbutils/usbutils_007-4+deb9u1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
无论我尝试下载什么,结果都大体相同。
我还在 sources.list 中尝试了 deb [trusted=yes],但这没有效果。然后是 --allow-unauthenticated,这也没有效果。
我几乎完全不知所措,所以如果需要更多信息,请询问。
答案1
从最初的 404 Not Found 错误开始:
E: The repository 'http://mirrordirector.raspbian.org/raspbian stretch Release' does no longer have a Release file.
这通常不是“网络”问题,除非您的连接使用基于浏览器的网络登录系统。但在这种情况下,我们可以在浏览器中访问 URL 并导航到 dists/stretch/ – 完整 URL 是http://mirrordirector.raspbian.org/raspbian/dists/stretch/你会在那里看到实际上不再是Release
该位置的文件。因此“404 Not Found”是完全合法的。
这很可能是因为 Raspbian Stretch 是 2017 年发布的,比当前版本落后 3 个版本(即它甚至不再是“旧稳定版本”),并且某些发行版不会将旧版本永久保留在镜像中。例如,Debian 将它们从主镜像系统中移出到单独的存档服务器中,但我找不到这样的 Raspbian 服务器。
由于主要的“发布”文件丢失,单独的包文件自然也会丢失;毕竟,它们占用了磁盘空间。
因此,鉴于 Raspbian Stretch 的存储库是消失了,您只有两个选项:a) apt-upgrade 到较新的 Raspbian 版本或 b) 全新安装较新的 Raspbian 版本。Stretch 是其次是Buster(然后是 Bullseye,然后是 Bookworm),因此您可以尝试编辑 /etc/apt/sources.list 并将所有提及的“stretch”替换为“buster”,然后执行升级到新版本;然后对 bullseye 重复此操作,依此类推。(跳过一个可能受支持;跳过两个肯定不受支持。)apt full-upgrade