如何撤消 apt-get remove?

Igo*_*Diy 23 linux ubuntu apt

我知道这很有趣,但我使用 sudo apt-get remove python 从 Ubuntu 中删除了 python 和所有相关程序?显然我可以重新安装python,但是安装我删除的所有程序需要很多时间。也许有一些解决方案?

谢谢

abl*_*hat 30

这不是一个简单的方法,但是如果您查看 /var/log/apt/history.log,您可以看到已删除的内容。只需重新安装被删除的每个包。

  • 我注册了 serverfault 只是为了支持这个,谢谢。 (3认同)
  • 它刚刚救了我的命! (2认同)

tza*_*rir 25

我刚刚犯了这个错误,您可以运行以下命令来撤消删除软件包这将从日志文件中提取删除软件包的信息并重新安装它们

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
Run Code Online (Sandbox Code Playgroud)

  • 不要运行`sudo apt remove python3`哈哈 (5认同)
  • 谢谢,你救了我的命!!提醒:永远不要运行“sudo apt purge python2.7” (4认同)

小智 7

我从Ubuntu 论坛上找到了一个很酷的技巧。

可以在终端中运行以下命令:

awk '!/^Start|^Commandl|^End|^Upgrade:|^Error:/ { gsub( /\([^()]*\)/ ,"" );gsub(/ ,/," ");sub(/^Install:/,""); print}' /var/log/apt/history.log
Run Code Online (Sandbox Code Playgroud)

查看输出,然后使用

sudo apt-get install [packages]
Run Code Online (Sandbox Code Playgroud)

并将 [packages] 替换为返回的最后一行包(注意它可能会换行)。