大量的报错:
dpkg: 警告: 无法找到软件包 libgpod4:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 vlc-plugin-samba:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libenchant-2-voikko:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 manpages-ja 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libserd-0-0:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libdrm-amdgpu1:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libwacom-common 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 task-malayalam-desktop 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libatk-adaptor:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libaprutil1:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 gir1.2-mediaart-2.0:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libxcb-damage0:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libhtml-form-perl 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libtotem0:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 libgnome-rr-4-2:amd64 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 g++-12 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
dpkg: 警告: 无法找到软件包 firefox-esr-l10n-en-gb 的文件列表,现假定目前该软件包没有任何文件被安装在系统里
....
起因:
- 误删 /var/lib/dpkg/info/ 目录内容,致使相关依赖数据无法加载
原因:
- dpkg命令获取不到dpkg软件包数据配置,dpkg却在系统内info目录下查询不到相关程序的配置文件信息;就会提示这个错误。
处理:
手动重新安装对应缺陷软件,刷新缓存记录。
因量较大,写脚本自动执行
FP获取需要刷新数据的列表信息,并将其写入SH脚本进行执行
#!/bin/bash
sudo apt install -y --reinstall nginx > b.txt
echo "#!/bin/bash" > a.sh
cat b.txt | awk -F ' ' '{print $4}' | awk -F ':' '{print "sudo apt install -y --reinstall "$1}' >> a.sh
cat a.sh | wc
chmod +x a.sh
二、执行SHELL脚本
[root@localhost ~/] ./a.sh
中途可能报错:Sub-process /usr/bin/dpkg returned an error code (1)
raspi-firmware: missing /boot/firmware, did you forget to mount it?
run-parts: /etc/initramfs/post-update.d//z50-raspi-firmware exited with return code 1
dpkg: 处理软件包 initramfs-tools (--configure)时出错:
已安装 initramfs-tools 软件包 post-installation 脚本 子进程返回错误状态 1
在处理时有错误发生:
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
则需要手动处理跳过以下本身有问题的包:
#!/bin/bash
sudo dpkg --configure -a
pid=`ps -ef | grep dpkg | grep root | awk -F ' ' '{print $3}'`
echo $pid
sudo kill -9 $pid
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.back
sudo mkdir /var/lib/dpkg/info
sudo apt install -y
sudo rm -rf /var/lib/dpkg/info
sudo mv /var/lib/dpkg/info.back /var/lib/dpkg/info
反复执行第二步,直至记录为零即可
异常:
正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 1397349(apt)持有... 2秒
强制kill掉它
ps -ef | grep dpkg | grep root | awk -F ' ' '{print $3}'
sudo kill -9 1397349
结果-完美解决(重启系统测试、各软件功能测试)
m@Home:~$ sudo apt install --reinstall vim
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
升级了 0 个软件包,新安装了 0 个软件包,重新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 1,567 kB 的归档。
解压缩后会消耗 0 B 的额外空间。
获取:1 https://mirrors.ustc.edu.cn/debian bookworm/main amd64 vim amd64 2:9.0.1378-2 [1,567 kB]
已下载 1,567 kB,耗时 1秒 (2,274 kB/s)
(正在读取数据库 ... 系统当前共安装有 211344 个文件和目录。)
准备解压 .../vim_2%3a9.0.1378-2_amd64.deb ...
正在解压 vim (2:9.0.1378-2) 并覆盖 (2:9.0.1378-2) ...
正在设置 vim (2:9.0.1378-2) ...
m@Home:~$