linux – 使用Debian进行事务和回滚

我不知道它是否是常识,但RPM支持在执行升级后退回到先前的安装(例如,它会破坏某些内容).您可以传递rpm –repackage标志以生成当前安装的一堆RPM文件,它将要更改.之后你可以说“rpm -Uvh –rollback’2小时前’”并毫不费力地将你的机器回滚到2小时前.

我的问题是,有没有人在基于Debian的发行版中找到类似的东西?

解决方法

我不相信aptitude或apt-get有这样的选择.但是,aptitude会在/var/log/aptitude上保留一个非常清晰的日志.您可以使用它来尝试回滚.

它的进展将取决于具体情况.如果您只想删除已安装的几个软件包,那应该是微不足道的.但是如果你已经升级(因为你跟着测试或者不稳定,或者因为你安装了安全升级或点升级升级),那么事情就会复杂一些.您可以检查缓存中是否仍有旧版.deb,或者访问Debian snapshot.

如果你不使用aptitude,你可以在dpkg的日志中找到它(在/var/log/dpkg.log中),但我发现使用它的友好程度要低得多.

编辑现在我看一下这篇文章,有一件事情有些相似.您可以通过执行此序列来获取包的状态.首先获取当前包状态的列表:

dpkg --get-selections "*" > my_packages-datestamp

然后您可以使用该包列表回滚:

dpkg --set-selections < my_packages-datestamp
apt-get -u dselect-upgrade

我已经使用这种方法重新安装,然后在机器上准确地拥有当前的软件包集,并且它运行良好.但同样,它的工作情况将取决于您可以使用以前的软件包列表中的哪些软件包 – 在缓存中或在您的存储库中.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...