dpkg: warning: files list file for package `*’ missing 解决方法

来源:互联网 发布:知秋一生所爱吉他弹唱 编辑:程序博客网 时间:2024/06/01 20:52

dpkg: warning: files list file for package `*’ missing 解决方法

在执行apt-get的时候,经常出现大量的
dpkg: warning: files list file for package ‘XXXX’ missing; assuming package has no files currently installed
语句,这主要是由于在利用dpkg(apt-get或者aptitude)命令安装安装包后,却删除了程序相关的文件,或者移除了相关文件,但是在dpkg数据库中却保留着他们的信息,因此导致了出现以上warning现象,解决方法是彻底移除信息(dpkg -P *)或者重新安装这些数据包。

下面提供的这个shell脚本实现的就是从输出的错误信息中提取出数据包,并利用aptitude重新安装的方法(需要安装aptitude,其实也很简单,apt-get install 一下即可,当然也可以自己修改为apt-get,我只是觉得aptitude好用而已……)。其中,报错信息存储在sh.txt文件中(sh.txt是自己创建的一个临时文件,在运行apt-get命令的时候在末尾加上 > sh.txt 进行重定向就可以了)。

#!/bin/bashfor package in $(cat sh.txt | grep "dpkg: warning: files list file for package " | grep -Po "'[^']*'" | sed "s/'//g");do  aptitude reinstall "$package";  #如果没有安装aptitude, 则可以用apt-get --reinstall "$package";done

sh.txt文件内容(示例)

Reading package lists...Building dependency tree...Reading state information...Reading extended state information...Initializing package states...The following packages will be REINSTALLED:  libkmediaplayer4 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 8 not upgraded.Need to get 29.5 kB of archives. After unpacking 0 B will be used.Writing extended state information...Get: 1 http://hk.archive.ubuntu.com/ubuntu/ trusty-updates/main libkmediaplayer4 i386 4:4.13.3-0ubuntu0.2 [29.5 kB]Fetched 29.5 kB in 0s (46.2 kB/s)dpkg: warning: files list file for package 'libkjsembed4' missing; assuming package has no files currently installeddpkg: warning: files list file for package 'libkemoticons4' missing; assuming package has no files currently installed......dpkg: warning: files list file for package 'libkexiv2-data' missing; assuming package has no files currently installed(Reading database ... 514777 files and directories currently installed.)Preparing to unpack .../libkmediaplayer4_4%3a4.13.3-0ubuntu0.2_i386.deb ...Unpacking libkmediaplayer4 (4:4.13.3-0ubuntu0.2) over (4:4.13.3-0ubuntu0.2) ...Setting up libkmediaplayer4 (4:4.13.3-0ubuntu0.2) ...Processing triggers for libc-bin (2.19-0ubuntu6.6) ...Reading package lists...Building dependency tree...Reading state information...Reading extended state information...Initializing package states...
1 1