0

我们创建了各种程序和脚本,需要在测试后部署在生产 Ubuntu 服务器上。我们正在考虑将我们的软件打包为 Debian (.deb) 文件,并使用 apt-get 或 aptitude 之类的工具来安装软件。

这很简单,但我不清楚如何回滚或卸载证明不受欢迎的新版本。一个明显的选择apt-get remove new-pkg之后是apt-get install old-pkg,但这是正确的方法吗?

在 postinst、prerm 或 postrm 中是否有需要遵循的特殊规则(或要避免的事情)以帮助使事情顺利进行?

请注意,我们所有的软件和服务器都是私有的,如果有帮助,我们可以完全控制一切。

4

2 回答 2

1

在 Debian 方案中,通常不考虑自动降级。首选方法是为固定版本使用新的和更高的版本号(即使“固定”意味着“删除所有新功能”)。

如果您绝对必须回滚升级,您可以考虑使用 Debian 纪元号来声明版本号的新开始,从回滚版本开始。举个例子,假设一个包的 1.2 版本坏了,你必须赶紧降级到 1.1,然后你将 debian 包 1.1-5 重新版本为 1:1.1-6,这是一个比普通版本更高的版本号1.2-1。

手动降级当然似乎不可取,在至少一次降级期间,您肯定会错过至少一台关键服务器。

对于 postinst、prerm 和 postrm,请参考Debian 新维护者指南

于 2011-11-02T08:39:24.247 回答
1

apt-get 和 aptitude 都允许您指定所需的安装版本:

apt-get install <your-package>=<your-version>
aptitude install <your-package>=<your-version>

无论如何,在您的部署过程中使用它是可取的,因此您需要准确地指定将哪个版本部署到服务器。

回滚到以前的版本应该只是指定以前的版本号的情况。当然,如果用新版本解决问题更有意义,那就这样做而不是回滚。

于 2011-11-22T16:43:49.500 回答