【问题标题】:Is it wise to use Debian (.deb) packages to distribute our software to production servers?使用 Debian (.deb) 软件包将我们的软件分发到生产服务器是否明智?
【发布时间】:2011-12-20 00:58:01
【问题描述】:

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

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

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

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

【问题讨论】:

  • 该组中的所有 Ubuntu 服务器是否都服务于完全相同的目的,或者它们是否需要运行不同的程序集?
  • 有些服务器执行一项任务,有些服务器执行其他任务。一切都由我们控制。我们正在寻找一种适用于我们所有软件的一致部署方案,无论其用途如何。

标签: linux installation debian uninstallation deb


【解决方案1】:

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

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

在任何情况下,在您的部署过程中都建议使用此功能,因此您可以明确要求将哪个版本部署到服务器。

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

【讨论】:

    【解决方案2】:

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

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

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

    对于 postinst、prerm 和 postrm,请考虑 Debian New Maintainer Guide

    【讨论】:

    • 好吧,我希望有一个众所周知的既定回滚方法,但感谢您的意见。
    • 为了降级而跨越时代是一个非常糟糕的主意。一旦一个时代被撞了,就没有回头路了。通常的解决方案是使用 1.2+really1.1-1。至少那只是暂时的。
    猜你喜欢
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2012-10-11
    相关资源
    最近更新 更多