我不知道这是否是常识,但 RPM 支持在执行升级后回滚到以前的安装(例如,这会破坏某些东西)。您可以将--repackage标志传递给 rpm以生成一组当前安装的文件的 RPM,这些文件将要更改。然后你可以说“ rpm -Uvh --rollback '2 hours ago' ”并毫不费力地将你的机器回滚到2小时前的状态。
我的问题是,有没有人在基于 Debian 的发行版中发现类似的东西?
我不相信有这样的选项aptitude或apt-get。但是,aptitude在/var/log/aptitude保留一个优秀的、清晰的日志。您可以使用它来尝试回滚。
进展如何将取决于具体情况。如果您只想删除一些已安装的软件包,这应该是微不足道的。但是,如果您已经升级(因为您进行了测试或不稳定,或者因为您安装了安全升级或点发布升级),那么事情就会变得有点复杂。您可以检查缓存中是否还有旧的 .deb,或者您可以访问Debian 快照。
如果您不使用aptitude,您可以查看 indpkg的日志(at /var/log/dpkg.log),但我发现使用它不太友好。
编辑现在我看了这篇文章,有一件事情有些相似。您可以通过执行此序列来获取包的状态。首先获取当前包状态的列表:
dpkg --get-selections "*" > my_packages-datestamp
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用该包列表回滚:
dpkg --set-selections < my_packages-datestamp
apt-get -u dselect-upgrade
Run Code Online (Sandbox Code Playgroud)
我已经使用这种方法重新安装,然后在机器上拥有当前的软件包集,并且运行良好。但同样,它的工作情况取决于您可以使用上一个软件包列表中的哪些软件包 - 无论是在您的缓存中还是在您的存储库中。
| 归档时间: |
|
| 查看次数: |
6061 次 |
| 最近记录: |