![如何撤消 apt-get remove?](https://linux22.com/image/581865/%E5%A6%82%E4%BD%95%E6%92%A4%E6%B6%88%20apt-get%20remove%EF%BC%9F.png)
我知道这种情况很有趣,但是我使用 sudo apt-get remove python 从 Ubuntu 中删除了 python 及其所有相关程序?显然我可以重新安装 python,但安装我删除的所有程序需要花费大量时间。也许有解决办法?
谢谢
答案1
没有简单的方法,但如果你查看 /var/log/apt/history.log,你可以看到删除了什么。只需重新安装每个被删除的软件包即可。
答案2
我刚刚犯了这个错误,你可以运行下面的命令来撤消软件包的删除,这将从日志文件中提取已删除软件包的信息并重新安装它们
echo '#!/bin/bash' > restore
echo sudo apt-get install `grep Remove /var/log/apt/history.log | tail -1 | sed -e 's|Remove: ||g' -e 's|([^)]*)||g' -e 's|:[^ ]* ||g' -e 's|,||g'` >> restore
chmod +x restore
./restore
答案3
我发现了一个很酷的技巧Ubuntu 论坛。
可以在终端中运行以下命令:
awk '!/^Start|^Commandl|^End|^Upgrade:|^Error:/ { gsub( /\([^()]*\)/ ,"" );gsub(/ ,/," ");sub(/^Install:/,""); print}' /var/log/apt/history.log
查看输出,然后使用
sudo apt-get install [packages]
并将 [packages] 替换为返回的最后一行包(请注意,它可能会换行)。
答案4
要补充 ablackhat 的答案,您可以将最后一个删除命令后的所有内容复制并粘贴/var/log/apt/history.log
到新的程序员编辑器中。正则表达式替换:.*?,
为(空字符串),并复制所有生成的空格分隔的包。然后运行
$ sudo apt-get install <paste>