生态社区

技术文档

dpkg 装包异常

发布时间:2023-06-05    浏览次数:950次    作者:湖南省计算产业生态创新中心 (长沙)

问题描述:

客户有时候装包的时候会反馈报错:dpkg-deb

--control 返回错误状态 2

或者 1,一般出现这种异常方式大多数原因是 Linux 中的软件依赖关系成一颗拓 扑树结构,比如 A 直接或间接依赖 B,那么 B 就不可能直接或间接依赖 A。试想从时间上 A、B 必然有一个先出现,而先出现的不可能依赖于后出现的;并且如果 A 与 B 互相依赖则就是“鸡与蛋”的问题,因此必然有一个先出现而另一个依赖于先者:

1. 由于之前用 dpkg 装包的时候出现强制中断,导致包的信息写入有问题 

2. apt 装包的时候没有正常结束安装,或者依赖关系没有满足 

3. 包本身有问题,有可能没下完,或者包安装脚本有问题 

解决思路:

基本上都是 dpkg 安装包的时候导致的异常,从 dpkg 开始排查,网上查到问题处理方法 

解决方法:

一般都提供脚本给用户,或者指导客户敲脚本内容: 

#!/bin/bash

mv /var/lib/dpkg/info /var/lib/dpkg/info_old

mkdir /var/lib/dpkg/info

apt-get update

apt-get -f install

mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old

rm -rf /var/lib/dpkg/info

mv /var/lib/dpkg/info_old /var/lib/dpkg/info

目的是更新 info 文件内容,更正一下 info 内容记录,就可以了,第三种情况的处理方式就是核对包的 md5 值,或者找对应的产品对接人核对一下包的可用性。