在旧版本Ubuntu系统中使用“apt-get update”出现“404 Not Found”错误的解决办法
问题:我的电脑上安装的是旧版本的Ubuntu 13.04(Raring Ringtail)。当我运行 sudo apt-get update
命令的时候,抛出了“404 Not Found”错误,并且我不能通过 apt-get
or aptitude
来更新包。由于这个错误,我甚至不能更新到最新发布版本的系统。我该如何解决这个问题呢?
每一个Ubuntu发布版本都有它的结束时间,通常,Ubuntu发布版本支持18个月,而LTS (Long Term Support)(长期支持)版本分别支持3年(服务器版)和5年(桌面版)。当一个Ubuntu发布版本到达结束期后,它的库将不再能够访问,并且你也不会得到任何维护更新和安全补丁。当写这个的时候,13.04版本已经到底了它的结束期。
如果你使用的是Ubuntu系统到达结束期了,你使用 apt-get
or aptitude
更新库时会得到以下错误提示:
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-backports/multiverse/binary-i386/Packages 404 Not Found [IP: 91.189.91.13 80]
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/raring/main/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/raring-security/universe/binary-i386/Packages 404 Not Found [IP: 91.189.88.149 80]
E: Some index files failed to download. They have been ignored, or old ones used instead
对于那些使用旧版本的Ubuntu的用户,Canonical会维护 old-releases.ubuntu.com ,这是一个过期库的归档。因此,当Canonical支持的Ubuntu过期后,你必须把源切换到 old-releases.ubuntu.com(除非你想在过期前进行升级)。
下面的方法通过切换到旧版本的源来解决“404 Not Found”错误。
首先,使用旧版本的源来替换当前主源:
$ sudo sed -i -r 's/([a-z]{2}\.)?archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
$ sudo sed -i -r 's/security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
然后使用文本编辑器打开 /etc/apt/sources.list ,找到 extras.ubuntu.com ,这个库也不再支持13.04。所以你需要使用 “#” 号注释掉 extras.ubuntu.com。
#deb http://extras.ubuntu.com/ubuntu raring main
#deb-src http://extras.ubuntu.com/ubuntu raring main
现在,你应该能够在旧版本的Ubuntu系统上进行安装或者更新了。