Answers:
首先,让我说删除python
可能导致许多基本命令不再起作用。因此,我不知道接下来的工作是否会奏效。
其次,我认为package names couldn't be found
您的错误是由命令行上的拼写错误的名称引起的,或者是由于本地安装且在存储库中不可用的软件包引起的。
然后,要获取已删除软件包的dpkg
日志(相对于上一个可用日志)(我认为您无需考虑较旧的日志):
awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log | tee list
然后编辑list
在当前目录中创建的文件,并根据行的时间戳仅保留相对于要重新安装的软件包的行。假设您将修改后的文件保存到list-mod
。
要重新安装该软件包,请使用以下命令:
sudo apt-get --simulate install $(awk '{ print $3 }' list-mod)
我插入了该--simulate
选项,以查看该命令将执行的操作。如果一切正常,请在删除该选项的情况下再次执行命令。
如果命令说找不到某些软件包,只需从中删除它们,list-mod
然后重试。
dpkg
到apt-get
,aptitude
,立得,软件中心,gdebi
等等。你可以给看看旧的dpkg.log
文件,请参阅ls -lrt /var/log/dpkg.log*
。
因此,我碰巧犯了一个类似的错误:
sudo apt-get purge python3.6*
而不是sudo apt-get purge python3.6.*
。
通过以下步骤,我能够很快修复它:
vim /var/log/history.log
。/python3.6\*
。Purge: unity-control-center-signon:amd64 (0.1.7~+14.04.20140211.2-0ubuntu4), ...
有一长串已清除的软件包(如果删除的话,将以开头Remove:
),我将其复制到另一个文件中而无需Purge:
使用它。%s/:[^,]*,//g
,该命令删除了版本部分,并给我留下了软件包列表unity-control-center-signon lxc ...
。sudo apt-get install unity-control-center-signon lxc ...
,这就是它固定的方式。/var/log/apt/history.log
/var/log/apt/history.log