【发布时间】:2009-10-07 19:38:42
【问题描述】:
RPM 似乎非常擅长检查依赖关系和处理单个文件更新,但处理累积更新的最佳实践是什么,比如跨多个版本的关系数据库?
例如,假设您的产品 Foo 的版本为 1.2.1、1.2.2、1.2.3 和 1.3.0。在每一个中,都有需要 SQL 升级脚本的数据库架构更改。需要按顺序运行每个升级脚本才能升级到架构的当前版本。
假设客户安装了 1.2.2 并希望升级到 1.3.0。如何构建 RPM 包,以便您可以使用适当的脚本并对数据库执行正确的升级脚本?在这种情况下,您需要执行 1.2.3 和 1.3.0 的升级脚本,而不是 1.2.1 或 1.2.2 的升级脚本。因为那些大概已经被处决了。
另一种方法是要求按顺序升级到每个中间版本,强制此示例中的用户在 1.3.0 之前升级到 1.2.3。这似乎不太理想。此外,这可能需要通过外部进程“强制”,因为我在 RPM SPEC 文件中看不到任何表明这一点的内容。
是否有任何已知的技术来处理这个问题?一点谷歌搜索没有暴露任何。
编辑:我所说的“已知”是指“久经考验”而不是理论上的。
【问题讨论】: