Debian

如何更新 Debian 4.0 Etch 的 sources.list?

  • August 7, 2012

我正在嘗試更新我/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

此外,在註釋掉源文件中的大部分行(如果不是所有行)之後,我仍然會遇到相同的錯誤。是否需要執行命令來清除記憶體?

man apt, man apt-cache, 並man apt-get提供有關包記憶體維護的資訊。

更新/etc/apt/sources.list文件後,請記住包資訊儲存在不同的地方,並且只是執行apt-get cleanapt-get autoclean不會清除這些被污染的包(對於那些未找到的包,您將繼續收到 404 錯誤)。您需要從以下位置清除包記憶體:

  /var/lib/apt/lists/
     Storage area for state information for each package resource specified in
     sources.list(5) Configuration Item: Dir::State::Lists.

如果您這樣做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.

Etch 現在是生命結束後的 2 個版本。沒有安全支持,因為它不受支持。

對於主記憶體檔使用這樣的行。

deb http://archive.debian.org/debian etch main

你應該升級到lenny,然後擠壓。

安全更新、反向移植、多媒體和 ksplice 檔案可能已經消失了。

引用自:https://serverfault.com/questions/414888