树莓派【dpkg: warning: files list file for package 'XXXXXXX' missing, assuming package has no files currently installed】

参照如下链接解决:

http://fitzeng.org/2017/11/04/linuxDpkgBug/

 

解决方法:自动化重新安装所有包。

1. 把错误log输出到mylog.txt文件:

dpkg: warning: files list file for package 'libodbc1:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'dh-autoreconf' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'erlang-webtool' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libhtml-template-perl' missing; assuming package has no files currently installed
.......
 
2. 写python文件fix.py处理mylog.txt文件:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'Fitzeng'
import re
def main():
  fix = open('fix.sh', 'w+')
  for line in open("mylog.txt"):
    pkg = re.match(re.compile('''dpkg: warning: files list file for package '(.+)' '''), line)
    if pkg:
      cmd = "sudo apt-get install --reinstall " + pkg.group(1)
      fix.write(cmd + '\n')
if __name__ == "__main__":
  main()

3. 如果权限不够可以直接先 chmod 777 *,然后执行 python fixit.py生成 fix.sh文件。

4. 运行 sh fix.sh自动完成安装。

 

 

posted on 2018-08-22 16:23  Sky5355  阅读(911)  评论(0)    收藏  举报

导航