我犯了一个可怕的错误,从/usr/lib
Debian 的目录中删除了两个文件夹。我删除了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
本地缓存包的完整路径手动设置正确的内容。就是这样:
cd
到apt
存储包的地方,即/var/cache/apt/archives/dpkg
然后 (如所须)用于安装、拆卸、清除或诸如此类的开关,然后文件名当前目录中的包的名称。因此要安装几个版本之一'foobar'最近连续安装的版本,键入dpkg -i foobar<TAB>
“”键将bash
自动补全其余部分,或显示可用版本。- 如果
dpkg
说你需要'菲兹班',(或者必须摆脱'菲兹班'),执行步骤 #2,其中'菲兹班'。然后尝试步骤#2'foobar'再次。 - 重复 #2 和 #3,直到系统处于所需状态。
这假设所需的包档案仍然缓存在本地。有时需要在线寻找包裹。在这种情况下,所需包的版本号可能会有所不同不确定- 在这种情况下,/var/log/dpkg.log
有答案,只是grep
或sed
通过包名称,它会显示dpkg
到目前为止已使用的版本。