Sharing

2013年7月30日 星期二

apt-get update fail!

最近為了 apt-get update 老是失敗很苦惱, 會遇到以下幾個 error

Case 1:
W: Failed to fetch http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/dists/precise-backports/multiverse/i18n/Index  No Hash entry in Release file /var/lib/apt/lists/partial/eu-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise-backports_multiverse_i18n_Index

Case 2:
Err http://ppa.launchpad.net precise/main i386 Packages
  404  Not Found

Case 3:
Get:56 http://free.nchc.org.tw precise-security/main TranslationIndex [726 kB]                                   E: Unable to parse package file /var/lib/apt/lists/partial/free.nchc.org.tw_ubuntu_dists_precise-security_main_i18n_Index (1)   

Case 4:
78% [62 Packages bzip2 0 B] [66 Packages 212 kB/1,640 kB 13%]                                                              469 kB/s 5sbzip2: (stdin) is not a bzip2 file.

網路上也有人遇到類似的問題, 但因為時間不同, 原因也不一定相同, 不過玩多了總會有心得
               
1. 原來的 repository 不太穩, 造成下載有問題, 可以試試看換另一個 respository

2. 公司內的 proxy cache 作怪
     i. 把 proxy 關掉
         /etc/apt/apt.conf
         /etc/apt/apt.conf.d/80proxy
     ii. 把 repository server 換成 ftp protocol ex: ftp://ftp.csie.chu.edu.tw/Ubuntu/archive/

3. 你新增的 ppa link 有問題
    把這個目錄下的檔案內容都先用 "#" mark 起來, 再一個一個開啟, 試試看那一個打開後就會讓 apt-get update 失敗
    /etc/apt/source.list.d/

4. 你所在的網路就是十分不穩, 加上一個 proxy 可能會有幫助
    在這個檔案內 /etc/apt/apt.conf.d/80proxy, 加上下面這行

    Acquire::http::Proxy "http://:8080";

    8080 是 proxy server 的 port number, 一般是 8080, 視情況改掉

5. apt-get 的內容亂掉了, 那就請參考

https://help.ubuntu.com/community/PackageManagerTroubleshootingProcedure
https://answers.launchpad.net/ubuntu/+source/update-manager/+question/207473
https://help.ubuntu.com/community/AptGet/Howto


另外把一般修復的流程寫成 script, 最後一行 dist-upgrade 視個人需要打開, 打開後會主動更新 linux kernel
#!/bin/bash
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update
sudo dpkg --clear-avail
sudo dpkg --configure -a
sudo apt-get install -f
sudo apt-get update
#sudo apt-get dist-upgrade


沒有留言: