在我的 Debian 服务器上,我将 SQLite 软件包升级到版本3.7.7
,但发现它包含一个严重错误,该错误破坏了包括我的 Subversion 存储库在内的多个功能。因此,我想降级回我之前使用的版本。但:
- 我不知道那个版本是什么(我认为是
3.7.6.3
,但我不确定)。 - 我发现可用于 SQLite 包的唯一其他版本对于我正在使用的 Subversion 包来说
aptitude
还3.5.9.6
为时过早(它至少需要3.6
)。
如何识别并降级到我正在使用的 SQLite 版本,并且该版本可能仍在我的计算机上的缓存中?或者,如果失败了,我如何知道aptitude
在哪里下载该包的中间版本?
答案1
APT 缓存位于/var/cache/apt/archives
.如果您有合适的软件包版本,则可以使用dpkg -i /var/cache/apt/archives/sqlite3-VERSION.deb
.
如果您没有,目前测试有3.7.6.3-1(可从任何 Debian 镜像下载)并且目前稳定3.7.3-1;或者你可以找到(几乎)Debian 中曾经存在的任何版本快照.debian.org。由于这是一种准时的需求,因此最简单的方法是手动下载软件包并安装dpkg
(但您也可以将特定的快照日期定义为 APT 源,如 snapshot.do 主页上所述)。
您可以通过查看 dpkg 日志/var/log/dpkg.log
或 APT 日志/var/log/apt
或 Aptitude 日志来了解以前安装的版本/var/log/aptitude
。
在 Aptitude 中,将有问题的版本标记为禁止安装:F
在交互式 UI 中键入或aptitude forbid-version
以交互方式键入。如果下一个版本中未修复该错误,请将软件包标记为“暂停”,以防止自动升级,直到进一步通知(=
按键或aptitude hold
命令)。
答案2
该文件/var/log/dpkg.log
有更改历史记录。请对此执行 grep 以找到答案。