今天同事的Ubuntu 10.4版 要使用apt-get install 安裝套件的時候遇到了404 Not Found的問題,訊息大概如下:
Err http://archive.ubuntu.com quantal/main amd64 Packages
404 Not Found [IP: 91.189.91.15 80]
Err http://archive.ubuntu.com quantal/restricted amd64 Packages
404 Not Found [IP: 91.189.91.15 80]
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/quantal-security/main/binary-amd64/Packages 404 Not Found [IP: 91.189.91.15 80]
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/quantal-security/restricted/binary-amd64/Packages 404 Not Found [IP: 91.189.91.15 80]
Err http://security.ubuntu.com raring-security/main amd64 Packages
404 Not Found [IP: 91.189.91.15 80]
Err http://security.ubuntu.com raring-security/restricted amd64 Packages
404 Not Found [IP: 91.189.91.15 80]
Err http://security.ubuntu.com raring-security/universe amd64 Packages
404 Not Found [IP: 91.189.91.15 80]
Err http://security.ubuntu.com raring-security/multiverse amd64 Packages
404 Not Found [IP: 91.189.91.15 80]
找了一下原因與解決方法,原因大概是因為,舊版的LTS(Long Term Support)版本,ubuntu只支援5年的時間(如果不是LTS版本只支援9個月),五年後ubuntu就會把更新的Server從標準的Server "http://archive.ubuntu.com/ubuntu/dist/" (apt-get 會去找的地方),移到別的地方了。
所以解決無法apt-get install的方法有兩個:
1. 更新你的ubuntu版本,使用指令 sudo apt-get dist-upgrade 去做版本更新。
2. 另一個方法你可以不要更新,可以使用 sed command 去更改 /etc/apt/sources.list 這個檔案,我們要把source.list裡面的 "archive.ubuntu.com" 和 "security.ubuntu.com" 替換成 "old-releases.ubuntu.com",在使用替換的指令之前,請先備份一下source.list檔案,如果下面方法失敗還可以把source.list復原,接著就可以執行sed替換指令,兩個步驟(command)如下:
一. cp /etc/apt/source.list /etc/apt/back_source.list
二. sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com
當我們的source.list內容替換完成之後,請先執行update,update完成之後再作apt-get install 接下來應該就不會有404 Not Found的問題了! update的命令如下:
sudo apt-get update