ubuntu旧版本如12.04在apt-get update时出现Err 404 Not Found的解决办法

  每个Ubuntu版本都有生命结束周期(EOL)时间(如当前 ubuntu 12.04 就不再维护);常规的Ubuntu发行版提供18个月的支持,而LTS(长期支持)版本则长达3年(服务器版本)和5年(桌面版本)。当某个Ubuntu版本达到生命结束周期时,其仓库就不能再访问了,你也不能再从Canonical获取任何维护更新和安全补丁。

  如果你所使用的Ubuntu系统已经被结束生命周期,你就会从apt-get或aptitude得到以下404错误,因为它的仓库已经被遗弃了:

  使用apt-get更新时可能会出现404 Not Found错误,无法更新软件,也不能通过apt-get安装软件:

$ sudo apt-get update
Err http://archive.ubuntu.com vivid/main amd64 Packages
  404  Not Found [IP: 91.189.88.149 80]
Err http://archive.ubuntu.com vivid/restricted amd64 Packages
  404  Not Found [IP: 91.189.88.149 80]
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/vivid/main/source/Sources  404  Not Found [IP: 91.189.88.149 80]

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/vivid/restricted/source/Sources  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.

解决方法:

  可以将更新源切换到  old-releases.ubuntu.com  ,这是一个过期库的归档。因此,当前版本Ubuntu支持期结束后,可以用此源继续使用,但旧版本的Ubuntu的内容将不再有维护。

  可修改 /etc/apt/sources.list 文件中的主机域为 old-releases.ubuntu.com ,或用以下命令切换到旧版本的源来解决“404 Not Found”错误:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
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
sudo apt-get update