这个可能是网络网络问题导致的更新时丢包,从而下载的数据不完整或错误。 运行以下命令,得到更新需要下载的软件包列表文件地址: sudo apt-get update --print-uris > apt-get-urls.txt用Firefox的downloadthemall插件下载上述列表文件。(用Firefox打开以上txt文件后批量下载)下载时注意: 文件保存位置,比如/home/你的用户名/pool 重命名掩码:填"curl/name.ext" (没有引号)。这意思是将下载的文件,若原链接为http://www.ubuntu.com/folder/subfolder/filename.gz,则保存为/home/你的用户名/pool/www.ubuntu.com/folder/subfolder/filename.gz。 下载的文件里,有几个文件名为"Release"的文件,若使用downloadthemall默认的或者上述的重命名掩码保存,由于没有文件名后缀,默认保存为"Release.txt",所以需要设置这些文件的重命名掩码为”curl/name”(没有引号)(在downloadthemall的下载选项中可通过”资源名称“字段排序后,全选文件名为Release的文件后设置重命名掩码) 设置每服务器并发下载1个文件,且关闭分块下载,否则可能会出错。 上述文件下载完成后,你的pool目录下就会有诸如”archive.canonical.com/ubuntu/dists/raring"等目录和文件。 备份原/etc/apt/source.list为/etc/apt/source.list.normal,并利用gedit等文本编辑器等的替换功能将/etc/apt/source.list中的 deb http://
deb-src http://替换为 deb file:///home/你的用户名/pool/
deb-src file:///home/你的用户名/pool/这样,运行升级命令sudo apt-get update后apt-get将从本地的pool目录获取软件列表文件。 sudoapt-get update成功后,此时若apt-get upgrade或者安装软件,则apt-get由于在本地找不到deb安装包而报错,此时可用以下方法获取下载链接,用downloadthemall批量下载deb包: sudo apt-get upgrade --yes --print-uris > ~/pool/apt-get-upgrade.txt需要下载的deb包的链接在apt-get-upgrade.txt文件中,您需要将文件中的"file:///home/你的用户名/pool/”全部替换为“[http://"再下载 http://"再下载]。 你可以将deb包统一下载到pool/deb目录下,然后用 sudo mount -o bind /home/你的用户名/pool/deb /var/cache/apt/archives此时你运行apt-get upgrade之后,apt-get每次都是从本地获取deb包了。 对于取到的软件包列表的下载地址,只需要获取一次,以后每次升级只需将原pool目录下的几个目录删掉后重新用downloadthemall下载即可,不用每次都重新获取。
|