强制 dpkg 修复

强制 dpkg 修复

我犯了一个可怕的错误,从/usr/libDebian 的目录中删除了两个文件夹。我删除了python2.7/并且pkgconfig/

我尝试修复但没有成功的事情:

  • sudo dpkg -i python2* ->“找不到平台无关的库”-->“/usr/lib/pyton2.7/py_compile.py 没有这样的文件”

  • 甚至通过 --> 删除它(python;用于将来重新安装)也 sudo dpkg -i python2.7-minimal无法删除,因为python2.7-minimal 依赖于 python2.7-minimal (>=....deb) 并且 python2.7 依赖于 python2.7-minimal (>=..._rc2.deb)

因此,只要它们没有像所说的那样由 dpkg“配置”,我就无法重新安装或修复这些软件包apt-get install python,但也无法删除它们以进行干净的重新安装,因为它们依赖于 dpkg 中的不同版本,而且我不知道如何解决这个问题。

那么如何通过 dpkg 或 apt 完全删除具有所有依赖项的包来解决上面描述的情况?

答案1

如果apt很无聊,有时可以使用dpkg本地缓存包的完整路径手动设置正确的内容。就是这样:

  1. cdapt存储包的地方,即/var/cache/apt/archives/
  2. dpkg然后 (如所须)用于安装、拆卸、清除或诸如此类的开关,然后文件名当前目录中的包的名称。因此要安装几个版本之一'foobar'最近连续安装的版本,键入dpkg -i foobar<TAB>“”键将bash自动补全其余部分,或显示可用版本。
  3. 如果dpkg说你需要'菲兹班',(或者必须摆脱'菲兹班'),执行步骤 #2,其中'菲兹班'。然后尝试步骤#2'foobar'再次。
  4. 重复 #2 和 #3,直到系统处于所需状态。

这假设所需的包档案仍然缓存在本地。有时需要在线寻找包裹。在这种情况下,所需包的版本号可能会有所不同不确定- 在这种情况下,/var/log/dpkg.log有答案,只是grepsed通过包名称,它会显示dpkg到目前为止已使用的版本。

相关内容