我正在尝试更新我/etc/apt/sources.list
的 VPS。当我运行时,apt-get update
我得到各种未找到的 404,例如:
Failed to fetch http://debian.newdream.net/dists/etch/main/binary-amd64/Packages.gz 404 Not Found
Failed to fetch http://security.debian.org/dists/etch/updates/main/binary-amd64/Packages.gz 404 Not Found [IP: 149.20.20.6 80]
Failed to fetch http://www.ksplice.com/apt/dists/etch/ksplice/binary-amd64/Packages.gz 404 Not Found
当我查看http://www.debian.org/releases/etch/时,我没有看到任何关于档案的信息。我在 archive.debian.org 里面,但我对如何按照它的说明/修改源列表有点困惑。这是当前列表的内容:
deb http://debian.di.newdream.net/ etch ndn
deb http://www.ksplice.com/apt etch ksplice
deb http://debian.newdream.net etch main non-free contrib
deb http://www.backports.org/debian/ etch-backports main
deb http://archive.debian.org/debian-volatile etch/volatile main contrib non-free
deb http://security.debian.org/ etch/updates main
deb http://debian.dc-uoit.net/debian-multimedia/ etch main
根据我在存档 README 上阅读的内容,我认为格式应该是这样的:
deb http://archive.debian.org/debian-security dists/etch/updates/ main
此外,在注释掉源文件中的大部分(如果不是全部)行之后,我仍然遇到相同的错误。是否需要运行命令来清除缓存?
Etch 现在已经有 2 个版本生命周期结束了。没有安全支持,因为它不受支持。
对于主存档使用这样的一行。
你应该升级到 lenny,然后挤压。
安全更新、向后移植、多媒体和 ksplice 档案可能已经消失。
man apt
,man apt-cache
, 并man apt-get
提供有关包缓存维护的信息。更新
/etc/apt/sources.list
文件后,请记住包信息存储在不同的地方,只是运行apt-get clean
或apt-get autoclean
不会清除这些错误的包(对于那些未找到的包,您将继续收到 404 错误)。您需要从以下位置清除包缓存:如果这样做
ls /var/lib/apt/lists/
,您将看到导致 404 的资源列表。. 中可能还有包信息/var/lib/apt/lists/partial/
。您可能需要删除(如在 中rm foo-bar
)导致 404 的那些包。小心不要删除那些正在工作的。然后如果你 cd 进入
/etc/apt
你会注意到sources.list.d
。在我的例子中,我只是运行sources.list.d/*
并删除了所有损坏的包(sources.list.d/*
当然是在验证 的内容之后)。之后您可以按顺序运行
apt-get check
、apt-get autoclean
和,您应该会干净利落。apt-get update
如果您对列表文件中包的命名约定有疑问,您可以随时执行
man sources.list
.