![就地升级不好的原因](https://linux22.com/image/536365/%E5%B0%B1%E5%9C%B0%E5%8D%87%E7%BA%A7%E4%B8%8D%E5%A5%BD%E7%9A%84%E5%8E%9F%E5%9B%A0.png)
我正在整理一份清单,列出为什么软件和操作系统的现场升级不是一个好主意。和我共事的许多人都认为,在旧版本之上安装新版本的软件或操作系统更简单、更好。然而,我认为这通常不是一个好主意,最好花额外的时间卸载软件的先前版本或执行操作系统的全新安装。所有这些也都取决于是否拥有可靠的备份操作。
我想收集人们对就地安装和全新安装的其他想法。
- 相对于软件和操作系统,它们各自的优点和缺点是什么?
- 您遇到了哪些类型的问题?如何解决软件和操作系统方面的问题?
- 关于这个话题我还有什么需要了解的可以和同事分享的吗?
提前感谢您的帮助。我期待听到您的分享。
答案1
如果有系统管理员喜欢就地升级,我会感到惊讶。简单的事实是,它们不可靠,也永远不会可靠。首先,您必须做出一个大胆的假设,即最初安装在系统上的每个软件包都 100% 正确打包。这永远不是真的。总有一些软件包有逻辑错误,或者写入他们忘记在软件包规范文件中提及的文件。编写软件包脚本是一项非常乏味的工作,并且总是分配给任何软件团队中最年轻的开发人员。
然后,您必须假设主机在一段时间内得到了正确的管理。没有人进入并手动修改配置或手动安装与打包的二进制文件冲突的二进制文件。这种情况永远不会发生,对吧?
请记住,安装所有这些新软件包意味着首先关闭旧版本的软件包。软件包关闭脚本是所有软件中测试最差的。没有人愿意处理他们珍贵的软件包被停用和丢弃这种极其无聊和不可想象的情况。此外,这其中还有一个很大的陷阱——关闭包含共享库的软件包意味着要做一些非常聪明的工作来关闭将这些库加载到内存中的软件包,或者在内存中交换正在运行的库。那就是极其很难做到正确。
最后,你必须假设,为系统制作新版本的人员彻底测试了所有可能的升级组合,而不仅仅是最简单的将上一个版本升级到这个版本的情况。你必须相信,他们能够投入几乎无限的资源来处理每一种可能的升级路径。
如您所见,这是一大堆(令人生畏的)假设。实际上,这些条件都不是真的。人们总是在机器上安装自己的二进制文件。软件包安装和删除脚本总是有缺陷(仅就这个问题我就可以写一篇完整的论文)。最终结果是,就地升级是愚蠢的差事。
我还应该指出,去年我的团队对我所在单位的 7500 台服务器进行了一次重大操作系统和软件升级。我们竭尽全力进行就地升级,但由于上述许多原因,最终还是失败了。我们最终清除了所有机器,从头开始安装操作系统和所有软件。问题解决了。
所有这些都让我开了个玩笑:软件发布经理的口头禅是从轨道上用核武器轰炸它 —— 这是唯一可靠的方法。 彻底清除并重新安装系统是确保成功的唯一途径。大多数情况下,您可以通过增量升级来解决问题,但最终还是需要从头开始。
答案2
如果可以选择的话,我不能说我支持就地升级,但有时它能很有道理。IT 领域的答案往往不是这个或那个,而是“事情没那么简单”。
您必须权衡进行就地升级与全新安装和数据导入的成本,并在每种升级类型的最佳和最坏情况下,在两种方法的成本之间取得现实的平衡,并考虑出现问题的几率(有些产品的就地升级比其他产品更糟糕,有些公司的支持人员会告诉您,他们支持就地升级,但如果可能的话,他们更喜欢全新安装)。如果您可以将软件升级与硬件升级联系起来,那么这可能有助于使“全新安装和迁移”路径更具吸引力。
就地升级几乎总是有问题的一种情况是,您试图通过升级到系统的最新版本来修复故障。这往往会导致后续出现问题 - 最终您无法在糟糕的基础上进行构建。另一方面,一个设置完善、升级路径良好、支持良好且经过充分测试的系统可能非常适合就地升级。添加大量在就地升级中保留但在迁移中丢失的自定义设置,在这种情况下,就地升级可能是更好的选择。
需要考虑的几件事是,全新安装和迁移方法可能会提高可用性(取决于迁移步骤的顺利程度,例如 Microsoft Exchange 可以很好地处理这一点),并且如果您在使用新版本的系统时确实遇到问题,这种方法肯定会为您提供非常好的“回滚”策略。
答案3
我同意你的观点,服务器操作系统就地升级并不是最好的主意。但对于工作站,我已经对 XP>Vista>7 进行了就地升级。尽管花费的时间更长,但用户很高兴一切都保持原样。
至于软件,如果安装程序在安装过程中提供了卸载功能,那么应该不会有问题,因为这就是它的本意。一些应用程序也可以直接在旧版本上安装新版本。
您没有提到要升级的内容、软件类型或操作系统。您应该在其中提供一些具体信息。
归根结底,笼统地说所有软件或操作系统的就地升级都是不好的,就像说你不使用自动更新,因为有一次你的更新给你带来了问题。