apt-log: 找回误删的软件包

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

今天想在 Linux 里装上 PPLive 看 WDC 的比赛, 装了几个依赖的 lib 还是不能用. 嫌麻烦不折腾了, 就顺手把刚装的几个 lib 包删掉. 正删着发现不对劲了, 怎么把 gnome-do, workrave, emacs, AUCTeX 都删了?! 想也没想, 就把终端关了. 这时候才想起来关了终端也没用, apt-get 是 root 的进程. 找到 pid, 果断 kill.

但删除已经进行到一半被退出, 也不知道到底删了多少去了. 用 sudo dpkg --configure -a 恢复更新的进程. 果然满目疮痍, 连 nautilus 都没了.. 只有找 apt 的日志来恢复了.

在我的系统里, apt 的日志存在 /var/log/apt/ 目录里. 因为是刚刚删完的, cat /var/log/apt/history.log 里最后一条就是刚删掉的包, 把它们重新装一遍就好了.

顺便, 我还找到了一个给 apt 的 log 提供按日期, 安装包名字等查找的脚本 “apt-log“, 可以在它的 Download 页面下载.

使用方法很简单, 看一下它给出的例子就很清楚了. 比如, 按照时间来查找:

  1. apt-log 2010 就会显示出你2010年有更新日志的月份.
  2. apt-log 2010-11 会显示有更新的天. 依次查找, 可以找到每次更新的时间, 也就可以看到每次更新的日志.

apt-log还有一些参数, 比如:

  • apt-log --changes 2010-11-10 显示2010-11-10这一天做的所有修改.
  • apt-log --history kde.* 显示所有kde包的修改历史.
  • apt-log --status gnome.* 显示所有gnome包的状态.

更多的example, 见apt-log作者给出的example/doc.

0 0 votes
Article Rating
Subscribe
Notify of
guest
6 Comments
Inline Feedbacks
View all comments
yaker
14 years ago


包依赖关系强的发行版,用久了之后包之间的关系都很混乱,装新包很麻烦

AquarHEAD
14 years ago

哈哈 你也看 不过第一天的直播真是杯具- -||

zerdison
zerdison
13 years ago

直接cat /var/log/dpkg*不行么。。。。

急上昇
急上昇
13 years ago

谢谢,有收获,写的不错啊,不错啊

trackback

[…] CID 字体的表), ttf-arphic-* 包(一堆中文 TTF 字体). 而且根据 apt-log的结果, 我安装这些包的时间都在2010年9月, […]

6
0
Would love your thoughts, please comment.x
()
x