内部 gzip 读取错误

bee*_*bba 2 dpkg gzip

我有一个 Dell Optiplex 755 Core 2 Duo,我全新安装了 12.04。机器上没有 Winows 操作系统。它已经运行了一个多星期,基本正常。由于 xserver-xorg-intel 冲突,我确实不断出现系统崩溃,但至少我知道它的来源。最近,运行 upgrade && update 我不断遇到冲突,似乎只有一个更新,最新的linux-libc-dev. 这是我得到的:

jay@jay-jay:/$ sudo apt-get upgrade && sudo apt-get update
阅读包裹清单...完成
构建依赖树       
读取状态信息...完成
将升级以下软件包:
  linux-libc-dev
1 个升级,0 个新安装,0 个删除,0 个未升级。
需要获取 0 B/828 kB 的档案。
此操作后,将使用 0 B 的额外磁盘空间。
你想继续[是/否]吗?是
(正在读取数据库...当前安装的 208582 个文件和目录。)
准备替换 linux-libc-dev 3.2.0-23.36(使用.../linux-libc-dev_3.2.0-24.37_i386.deb)...
解压替换 linux-libc-dev ...
dpkg-deb(子进程):数据:内部 gzip 读取错误:“:数据错误”
dpkg-deb:错误:子进程返回错误退出状态 2
dpkg: 错误处理 /var/cache/apt/archives/linux-libc-dev_3.2.0-24.37_i386.deb (--unpack):
 子进程 dpkg-deb --fsys-tarfile 返回错误退出状态 2
没有写入报告,因为错误消息表明本地系统存在问题
         处理时遇到错误:
 /var/cache/apt/archives/linux-libc-dev_3.2.0-24.37_i386.deb
E:子进程/usr/bin/dpkg返回错误码(1)

我搜索了 AskUbuntu,发现了类似的问题,并尝试了我认为可能有用的已接受答案。在这一点上,我停滞不前。

Oct*_*ves 6

显然 dpkg-deb(一个程序,它是 apt-get 使用的 debian 包管理的一部分)和 tar(将文件从/解压缩到单个档案中)之间存在问题。

现在 dpkg-deb 正在使用不受支持的选项调用 tar,因此不知何故这些程序之间存在版本不匹配。

你可以运行这个,尝试解决这个问题:

`aptitude clean` or `apt-get clean`
Run Code Online (Sandbox Code Playgroud)

如果没有解决,试试这个技巧:

将 /bin/tar 重命名为 /bin/tar.original:

mv /bin/tar /bin/tar.original
Run Code Online (Sandbox Code Playgroud)

然后将简单的脚本写入 /bin/tar 文件:

#!/bin/bash
tar.original xf -
Run Code Online (Sandbox Code Playgroud)

然后使用

chmod a+x /bin/tar
Run Code Online (Sandbox Code Playgroud)

最后一步是重新安装损坏的软件包:

apt-get install --reinstall dpkg
apt-get install --reinstall tar
Run Code Online (Sandbox Code Playgroud)