先来讲讲 这个问题是咋出来的
一.由于前段时间想安装一个vsftpd+ldap在服务器上,google了各种安装配置方法,没装成功!
因为多次尝试,使用了各种apt-get install +apt-get remove ,结果就导致出现了 一些“pkg:警告:无法找到软件包 XXXX ” 问题
当时,警告还是很少的 也就是提示无法找到的包不多,渐渐地,服务器装的东西多了,这个问题就越来越明显
于是求google 大师,找各种答案 其中:
1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名
2.$ sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
3.$ sudo apt-get update, apt-get -f install
4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
5.$ sudo rm -rf /var/lib/dpkg/info //把自己新建的info文件夹删掉
6.$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //把以前的info文件夹重新改回名字
被我尝试多次,依然会出现那个问题!
其实这里 我们可以发现为什么会在安装新的内容时会出现无法找到软件包问题,因为在apt-get install 安装一个新包时 先回去检查/var/lib/dpkg/info/目录下的已安装包的配置文件信息;如果发现有已经安装的应用 的配置文件信息不在info目录下 就会提示这个错误
所以这个时候我们 可以通过:sudo dpkg --configure -a
然后通过:dpkg -l | grep ^ii | awk '{print $2}' | grep -v XXX | xargs sudo aptitude reinstall
重新获取包内容配置信息 ,这样一步步重新安装下去 很快就可以解决这个问题了
二.当然也还有第二种方法,那就是通过:sudo apt-get --reinstall install `dpkg --get-selections | grep '[[:space:]]install' | cut -f1`
来重新安装全部软件,会全部刷新info目录 不过这个方法就要多花点时间去等了