我在 launchpad 上维护一个软件包,大约每个月发布一次。但是,由于一些根本性的变化,我们的新版本不再与以前的版本兼容。因此不应将 2.8 版本升级到 2.9。我特别想防止用户错误地升级到 2.9。相反,如果他们想升级,应该强制他们先 apt-get remove,然后 apt-get install 进行全新安装。
有没有办法在包描述中指定这一点?或者我最好创建一个单独的存储库或更改包的名称?
答案1
您应该更改软件包名称。这不仅是因为您没有好的方法来阻止升级,更重要的是因为用户可能希望在过渡期间安装两个版本。例如,安装新版本,在测试数据上运行一段时间,然后在新配置稳定后进行困难的数据迁移。
历史示例:Apache(我不记得 Ubuntu 是否曾经有单独的 Apache 1 和 Apache 2,但 Debian 肯定有)。
答案2
这可能最适合 #ubuntu-devel 或 #ubuntu-packaging。从高层次来看,如果下一个修订版有如此大的突破,那么它实际上应该是 3.0 等新版本的开始,但这不会阻止升级。您可以采用单独的 PPA 路线,但这并不适合所有人,您可能会开始失去用户。正确的做法是修复应用程序,使其真正向后兼容。无论您每月发布一次,用户都应该能够期望更新不会破坏他们的安装。