在ubuntu上遇到的一个错误Problem with MergeList /var/lib/dpkg/status

平台信息:

ubuntu 16.04LTS


在ubuntu上编译一个驱动源码时,不知道自己做了什么操作,然后执行apt-get update/install/remove 命令时都出现以下错误,错误提示如下所示:
[plain] view plain copy

命中:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial InRelease
获取:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-security InRelease [102 kB]
已下载 102 kB,耗时 5秒 (18.4 kB/s)
正在读取软件包列表... 有错误!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: 无法解析或打开软件包的列表或是状态文件。


如果是在安装某个软件包之后出现这个问题,且apt-get install 还能用,那么尝试使用命令 sudo apt-get install --reinstall XXX软件包 ,重新安装该软件包进行修复。

如果和我一样,apt-get 命令运行不了,那么可参考我的解决方法。
解决方法1:
1,把status文件进行备份。sudo cp /var/lib/dpkg/status /var/lib/dpkg/status-error
2,把旧的status 还原, sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status

3,然后执行命令:

sudo rm -vrf /var/lib/apt/list/*

sudo apt-get update


如按照以上方法处理后,执行sudo apt-get update 命令后,又出现以下错误:
[plain] view plain copy

正在读取软件包列表... 有错误!
E: Problem parsing dependency Depends
E: 处理 libio-socket-ssl-perl (NewVersion2) 时出错
E: Problem with MergeList /var/lib/dpkg/status
E: 无法解析或打开软件包的列表或是状态文件。

解决方法2 :

这显然是安装libio-socket-ssl-perl软件包时有问题,那么尝试重新安装该包:sudo apt-get install --reinstall libio-socket-ssl-perl

但是,我的apt-get install 命令用不了,因此,无法重装。

那么只有使用其他的方法来解决了。

解决方法3:

sudo rm -rf /var/lib/dpkg/status

sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status

sudo rm -vrf /var/lib/apt/list/*

sudo apt-get update

按照解决方法3执行后,结果还是一样,报这个错:
[html] view plain copy

正在读取软件包列表... 有错误!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status


看来无法解决这个出错的地方,那么只能用一个以前的且没有错误的status文件来覆盖这个status文件了。
终极解决方法4:
sudo rm -rf /var/lib/dpkg/status
sudo cp /var/backups/dpkg.status.1.gz /var/lib/dpkg/
cd /var/lib/dpkg/
sudo gzip -d dpkg.status.1.gz
sudo mv dpkg.status.1 status
sudo rm -vrf /var/lib/apt/list/*

然后再执行 sudo apt-get update 就可以正常获取更新的软件包的列表信息了。

因为我也不知道我是做什么操作才导致这个问题,所以只能一步步的来解决了。
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值