Ubuntu之dpkg小问题

问题:

         由于各种原因(其实是删除了/var/lib/dpkg/status文件中的内容,然后sudo apt-get出错,就从别的机器上把status同样拷贝过来)会出现下面的问题,每次apt-get install 或remove的时候:

dpkg: warning: files list file for package `augeas-lenses' missing, assuming package has no files currently installed.

dpkg: warning: files list file for package `python-cheetah' missing, assuming package has no files currently installed.
。。。。。。
中间略去众多
。。。。。。
dpkg: warning: files list file for package `libaio1' missing, assuming package has no files currently installed.

dpkg: warning: files list file for package `bridge-utils' missing, assuming package has no files currently installed.


        数量非常多,上面只列举了一小部分,应该是两个机器上安装的包是有差异导致的,所以不能直接拿过来用 

解决:

        既然问题出现了,就解决吧,
sudo dpkg -r <package_name>
       但是逐个删除的话对上面这么大的量来说是非常慢的,也很傻哦

       所以可以这样做:

Step1: 将待处理内容保存成文本

       把上面的输出内容贴到一个文件中dpkgfile,保存好;

Step2:对文本进行初步处理

       vim进入dpkgfile之后

       :%s/dpkg: warning: files list file for package `//g               // 把包名的前面删掉

        :%s/' missing, assuming package has no files currently installed.//g                          //把包名后面部分清掉。这样拿到了一行包名一行空行的结果。

        为了使用xargs,逐行处理,接下来就要

         sed /^[[:space:]]*$/d dpkgfile > dpkgfile1              //将空行删除

Step3:让机器帮助你删除吧

         cat dpkgfile1 | xargs sudo dpkg -r 让机器来删除啦


不过因为包之间的相互依赖问题,可能有部分需要自己手动删除,或是到status文件中把相应的包内容块删掉。GOOD LUCK!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值